Fix the Automake makefile for automake 1.14.

This is a combination of PuTTY r10142 and the relevant pieces of
r10141: we now enable the 'subdir-objects' mode in Makefile.am, and
stop using $(subdir) in source file paths.

(As a consequence of the latter the automake machinery now cannot live
anywhere but at the top level of the source tree, but since that's
where it was already, this is less of an upheaval here than it was for
PuTTY!)


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10146 cda61777-01e9-0310-a592-d414129be87e
Reinstate the Mac OS build step.

Now I've got a working Mac, I can build it again.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10167 cda61777-01e9-0310-a592-d414129be87e
Add a missing #include.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10179 cda61777-01e9-0310-a592-d414129be87e
Change our method of calling main() in emccpre.js.

I've just upgraded to emcc 1.16.0, in which something fiddly has
happened to the semantics of Module.run() vs noInitialRun - now
setting the latter seems to cause the former to do everything except
calling main(), and then refuse to ever do anything again. So now I
have to use Module.callMain() in place of Module.run() when I finally
do get round to wanting to call main().


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10180 cda61777-01e9-0310-a592-d414129be87e
Fix vertically misaligned text in Javascript puzzles.

When I constructed my test canvas to measure the vertical extent of a
text string for ALIGN_VCENTRE, I forgot to ensure that the 'width'
variable was an integer, as a result of which the loop over canvas
pixels kept trying to use fractional array indices and returning
undefined :-)


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10196 cda61777-01e9-0310-a592-d414129be87e
Improve connectedness-error highlighting in Range.

The previous approach of scanning the grid by depth-first search was
fine for deciding whether it was connected, but not so good for
pointing out where the mistake was in the grid. Replaced that code
with a dsf-based version, which identifies all connected components so
that an easy followup pass can highlight all but the largest as
erroneous.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10223 cda61777-01e9-0310-a592-d414129be87e
Improve connectedness-error highlighting in Singles.

Using exactly the same policy as I did for Range the other day: if
multiple regions exist, then one is taken to be canonical and all the
others are marked as errors.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10233 cda61777-01e9-0310-a592-d414129be87e
Remove dependencies on Subversion.

I'm going through all my projects and reworking them to avoid
depending on the monotonic integer-valued source control revision
identifier provided by Subversion, so I can migrate everything to git
without my builds and versioning breaking.

Puzzles's version number is now of the form YYYYMMDD.vvvvvv, where
vvvvvv is some string of source control information (currently still
the SVN-style "rNNNNN", but free to change in future). The date
provides monotonicity between my official automated builds, and the
second component is the one I'll be most interested in when people
send bug reports.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10263 cda61777-01e9-0310-a592-d414129be87e
Remove the MD5-based manifest file system.

A long time ago, it seemed like a good idea to arrange that binaries
of my puzzles would automatically cease to identify themselves as a
particular upstream version number if any changes were made to the
source code, so that if someone made a local tweak and distributed the
result then I wouldn't get blamed for the results. Since then I've
decided the whole idea is more trouble than it's worth, so I'm
retiring it completely.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10264 cda61777-01e9-0310-a592-d414129be87e
Provide a static version.h for development builds.

I forgot to add this in last week's versioning revamp, meaning that
dev builds straight from source control would fail for lack of
version.h because Buildscr is the only thing that knows how to create
it. Other projects that I restructured this way come with a static
version of version.h so that local builds can still work; I forgot
that in this one.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10274 cda61777-01e9-0310-a592-d414129be87e
Fix antialiasing artifacts around edges of Bridges islands.

When an island changes colour (because it becomes locked or
highlighted, or goes back to plain COL_FOREGROUND from one of those
states), we were just redrawing a filled circle over the previous one,
which only really worked before antialiasing was introduced.

Fixed by reworking the entire drawing edifice to be grid-square based,
so that every grid square is either redrawn in full or left alone.
Grid squares come in two types - island and bridge - but a bridge
square can have neighbouring islands overlap into it, and the bridges
entering an island overlap the island square too, so we end up with
quite a large collection of bitfields describing each square's
contents, and some care must be taken to draw each square in the right
order.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@10282 cda61777-01e9-0310-a592-d414129be87e
Stop using NSApp in the OS X front end.

As of OS X 10.10 (Yosemite), this causes a compile failure, which
according to the Internet is because NSApp is a generic 'id'
(Objective-C's answer to void *), which causes the compiler to select
the wrong method for [NSApp setDelegate:...] and give a spurious type
warning.

Fixed by using [NSApplication sharedApplication] throughout, or
rather, calling that once at startup and assigning the result into my
own global variable which will do as an NSApp replacement.


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