Tweak a conditional expression in pearl.c to work around a display bug
in the Java build - which turns out to be a JVM bug in OpenJDK 6,
causing the NestedVM rendition of the expression (i==1?3:4) to be
mis-JITed. OpenJDK 7 appears not to do that any more, but this
equivalent (for these purposes) rephrasing should perturb the code
just enough to dodge the problem.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9408 cda61777-01e9-0310-a592-d414129be87e
Patch from Jonas Koelker to add keyboard control support to Pearl.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9411 cda61777-01e9-0310-a592-d414129be87e
Comment the Mac build out of Buildscr, since I no longer have a
working Mac and hence can't build it any more.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9442 cda61777-01e9-0310-a592-d414129be87e
Error checking in Pattern, which was until now the only remaining game
that _ought_ to have it but did not.

I've tried to implement it before and found that the most obvious
approach was so effective as to constitute a spoiler, so this is a
deliberately weakened approach which in a bit of play-testing seems to
be a more sensible balance. It won't necessarily tell you at the very
instant you put a foot wrong, but it will at least ensure that (my
usual minimum standard) once you've filled in the whole grid you will
either have seen a victory flash, or an error indicator showing you
why not.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9445 cda61777-01e9-0310-a592-d414129be87e
Change some instances of 'print $thing' to 'print $thing || ""', to
prevent annoying Perl warnings when $thing is undefined.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9446 cda61777-01e9-0310-a592-d414129be87e
Fix redundant redrawing in Pegs. Apparently it has always redrawn
every single peg and hole on the board, every time it did any kind of
redraw at all, because I forgot to update the array in the drawstate
indicating the last-drawn state of each position. And nobody's noticed
until now!


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9447 cda61777-01e9-0310-a592-d414129be87e
Add an explicit -lm to the link lines in Makefile.gtk, after two users
reported on the same day that this is now necessary since up-to-date
GNU tools won't consider it sufficient to have libm be a dependency of
other explicitly referenced libraries if you're directly referring to
the contents of libm yourself.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9448 cda61777-01e9-0310-a592-d414129be87e
Increase by 1 in every direction the size of the blitter used to save
the background under a Guess coloured peg in mid-drag. Currently it
assumes the circle doesn't extend into the next pixel, which the docs
for draw_circle warn might happen due to antialiasing.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9450 cda61777-01e9-0310-a592-d414129be87e
Swap a 'max' for a 'min', fixing an out-of-range colour component
being passed to the front end.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9451 cda61777-01e9-0310-a592-d414129be87e
Increase by 1 pixel the clip rectangle used to draw and erase the
Black Box finish button. Like the Guess blitter, it was assuming
non-expansion of circles.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9452 cda61777-01e9-0310-a592-d414129be87e
Typo fix from Helge Kreutzmann, forwarded from Debian.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9453 cda61777-01e9-0310-a592-d414129be87e
Add a difficulty exception to prevent Pearl spinning forever when
asked to generate a 5x5 Tricky puzzle. (Debian bug #667963)


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9454 cda61777-01e9-0310-a592-d414129be87e
Permit users to reconfigure the default setting for each puzzle using
another of those hacky environment variables.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9455 cda61777-01e9-0310-a592-d414129be87e
Update the OS X makefile so I can build on Lion. Regrettably that
means I have to withdraw support for OS X 10.3 and PPC.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9494 cda61777-01e9-0310-a592-d414129be87e
Stop using the deprecated NSString stringWithCString: methods.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9495 cda61777-01e9-0310-a592-d414129be87e
Add a section to mkfiles.pl to build a makefile that compiles the OS X
front end using GNUstep, yielding a Unix program built from the same
code. Should make it easier to check OS X behaviour without having to
move as far as a Mac :-) However, it doesn't compile as is, so I'll
apply fixes to the code until it does.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9498 cda61777-01e9-0310-a592-d414129be87e
GNUstep compatibility: spell null selectors "NULL", not "nil".


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9499 cda61777-01e9-0310-a592-d414129be87e
GNUstep compatibility: comment out some API calls that GNUstep
apparently doesn't have. Fortunately they were optional anyway.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9500 cda61777-01e9-0310-a592-d414129be87e
GNUstep compatibility: remove an unused variable which the compiler
warned about.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9501 cda61777-01e9-0310-a592-d414129be87e
GNUstep compatibility: stop using the API feature isFlipped/setFlipped
to translate y-coordinates from the default of up-from-bottom to the
down-from-top expected by these puzzles, because it doesn't work right
on GNUstep. Instead, we run the API in its default mode (probably a
more robust choice anyway) and translate coordinates manually in the
front end.

In the process, I've separates the processButton: method into one for
mouse buttons and one for keys, since that was the easiest way to
ensure the coordinates passed to the mid-end for the latter are -1,-1
_after_ translation rather than before.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9502 cda61777-01e9-0310-a592-d414129be87e