Enable high resolution on osx
Bump the source and target versions used in javac.
Stop using deprecated gdk_beep().
Buildscr: make long parts of the build conditionalisable.
latin.c: remove a rogue array overrun.
Make static keyword come first everywhere.
Move `static' keyword to beginning of declaration.
Add request_keys() to the rest of the unfinished games.
Build fix: stop initialising an auto char array.
Add a request_keys() function with a midend wrapper.
Convert Tents to use matching instead of maxflow.
Use the new matching() for latin.c.
Implementation of the Hopcroft-Karp algorithm.
Recipe: centralise dependencies for latin.c.
Move fgetline out into misc.c.
Galaxies: clarify wording of completion condition.
Fix two bugs in Range's solver_reasoning_recursion().
Solo: add a missing params constraint for X puzzles.
Fix false-positive completion detection in X Solo.
towerssolver: always print solver diagnostics in -v mode.
latin.c: dump every solution found during recursion.
Create 96x96 icons for gnome-shell
Forbid undo-of-new-game after midend_set_config.
Mark the 32-bit Windows build as runnable on XP.
Reinstate 32-bit Windows builds of Puzzles.
Permit redoing past an undone New Game action.
Refactor to make me->newgame_undo a small struct.
Standardise character encoding of source tree on UTF-8.
New grid type: the trihexagonal tiling, or 'kagome lattice'.
Solo: remove some overzealous assertions in the solver.
Map: stop storing pixel coordinates in game_ui.
Unequal: run check_complete() after a hint move.
fix loop condition
Fix assertion failure if you Undo right at startup.
Make the code base clean under -Wwrite-strings.
Assorted char * -> const char * API changes.
Return error messages as 'const char *', not 'char *'.
Use a proper union in struct config_item.
New name UI_UPDATE for interpret_move's return "".
Fix an int->pointer cast warning in windows.c.
Make newgame_undo_buf 'char *', not 'void *'.
Forbid undo of new-game if it would change the params.
Style tweaks to the newgame_undo patch.
midend: Allow "new game" to be undone
midend_deserialise: accept an extra validation function.
midend_deserialise: keep deserialised data in a struct.
deserialise: use the right one of {,c}params.
tracks: Make error clue background white
tracks: Greyscale colour initialisation: line up columns
tracks.c: draw_clue: Introduce bg parameter
Fix changing puzzle size in a maximised GTK3 window.
Fix auto-selection of presets in GTK.
Net: rewrite the drawing code for better scalability.
Net: reference-count the barriers array.
tracks: thicken the lines of the grid itself.
tracks: Roughly double the thickness of the "no track" crosses
tracks: Scale thickness of "no track here" crosses
draw_thick_line: Bound thickness by 1.0 below
Avoid macro-generating a trailing comma in an enum.
Pattern: randomise rounding bias in generate().
Pattern: missing special case in the solver.
Build test HTML wrapper pages for the Javascript puzzles.
Generate special fake keypresses from menu options.
Call game_id_change_notify_function after deserialisation.
Fix borders on the HTML menu bar.
HTML: move 'New game' back out of the drop-down menu.
Make the images on the web page link to the JS puzzles.
Support for loading games in Javascript puzzles.
Support for saving games in Javascript puzzles.
Factor some HTML dialog functions out of emcclib.
Organise the JS menus/buttons bar more like a menu.
Mines: show the number of safe squares left, if it's small.
Switch the Windows builds over to clang-cl.
Set up a clang-cl makefile.
Win64-cleanness: switch to {Get,Set}WindowLongPtr.
Discontinue the Inno Setup Puzzles installer.
Net: fix assertion failure on insoluble puzzles.
Make cellsize a char.
Switch to using Halibut's new direct .CHM generation.
Switch chiark URLs to https.
Fix infinite-loop bug in Loopy's autofollow feature.
Nitpicks to the previous commit.
Work around non-compliant sprintf().
Loopy: optional 'autofollow' UI feature.
Use the new hierarchical preset menu feature in Loopy.
Rework the preset menu system to permit submenus.
Javascript puzzles: switch to a CSS-based drop-down system.
Use symbolic enum values in the Loopy presets array.
New Loopy tiling: 'Great Great Dodecagonal'.
Net: rework status line to cope with empty squares.
Net: fix completion check if top left square is empty.
GTK API deprecation: in GTK 3.22, stop using gdk_cairo_create.
GTK API deprecation: use GtkCssProvider for window background.
Add some missing calls to midend_redraw().
Fix missing error highlights (+ array underrun!) in Pearl.