js: Substantially simplify timer code
js: Give keyboard focus to the puzzle canvas at startup again
js: Remove class="text/css" from <style> element
js: Add a way to have environment variables
js: Use <li role="separator"> in place of <li class="separator">
js: Label all form controls and put controls inside labels
js: Simplify menu CSS a little
js: Convert menus to use semantically appropriate HTML elements
Correct a comment: draw_rect_outline() uses draw_polygon()
Remove setting of indent-tabs-mode from filling.c
Remove a couple of unused variables.
js: Enable STRICT_JS in Emscripten
js: Add various missing variable declarations
js: Reinstate a missing variable declaration
js: Switch to window.requestAnimationFrame() for timing
js: Cancel UI events when the mid end says they've been handled
Add a way for midend_process_key() to report whether it handled a keypress
js: Make SoftRight act as CURSOR_SELECT2 as well
js: Map the "SoftLeft" key to CURSOR_SELECT2
js: Move much of the handling of device pixel ratios to the mid-end
Teach the mid-end about device pixel ratios
js: Make update_pixel_ratio() more robust
js: Adjust z-indices of sub-menus and resize handle
js: Tolerate the non-existence of some HTML elements
Loopy: adjust clip rectangle for new line thickness.
Loopy: make line thicknesses scale with the canvas.
js: Take device pixel ratio into account when setting default size
js: Distinguish manual resizes from device pixel ratio changes
js: Split setting nominal and actual canvas size
js: Very bad attempt at making puzzles change size when zooming
js: Add a CMake variable to control whether Emscripten emits WASM
js: Make update_pixel_ratio more backward-compatible
js: Use String.replace() in place of .replaceAll()
js: Be more subtle about cancelling keydown events
js: Add a comment explaining the two halves of the key-matching code
js: Handle KeyboardEvent.key == "Spacebar"
js: Recognise KeyboardEvent.key == "Escape"
js: Add mapping for UI_REDO based on KeyboardEvent.key
js: Use KeyboardEvent.key for ASCII keystrokes
js: Remove the charCode argument from key()
js: Add modern "key" values for Delete and arrow keys
js: Use KeyboardEvent.keyCode and .char only as fallbacks
js: Remove braces from big else-if chain in keyboard handler
js: Use less-modern syntax in update_pixel_ratio
js: Make resizing of puzzles work properly again
js: Pay attention to changes in device pixel ratio
js: Pay attention to the device pixel ratio
js: Move some styling from style attributes to stylesheet
js: Map mouse co-ordinates correctly even when CSS scales our canvas
Update Nikoli links and remove Flash warnings
js: Percent-encode game IDs in URLs and decode them again on input
Build fix: take declarations out of for loops.
js: Read save files as text rather than binary strings
Revert "WASM: move save file encoding from JS into C."
Update comment on parameter string formats in documentation
Document the asserted printable ASCII nature of many strings
Assert that everything written to a save file is printable ASCII
Hex-encode non-ASCII random seeds in save files
Add assertions that game descriptions consist only of printable ASCII.
Add an assertion to check the format of encoded parameters
js: Make the dialogue box heading actually be an <h2>
js: When making a hidden element visible, just remove "display: none"
js: Remove unnecessary setting of status bar size
js: Move dialogue-box sizing and positioning from JavaScript to CSS
js: Move most style settings from JavaScript to CSS
Correct and enable the range check on statepos when loading
Add more validation to midend deserialisation routine
js: Update permalinks and undo/redo buttons when loading
js: Update comment on possible future enhancements
Add a missing "const" to js_draw_poly and js_canvas_draw_poly
Hide some words in top-level menu items on small viewports
Make JavaScript game controls work better in small viewports
Enable Apple Silicon in the MacOS builds.
unix, gtk: Install and use HTML help
Re-fix the GTK dark theme check.
Update the developer documentation.
Style cleanups from the previous fixes.
Makefile.doc: Update file list in the clean rule
gtk: Adjust to reordering of XPM icons
gtk: Do not override window background colour when using a dark theme
Bridges: Fix off-by-one in WITHIN()
Unruly: Fix memory leak in dup_game()
Towers: Fix indentation of some solver code
Pearl: Require width or height to be at least 6 for Tricky
Mines: fix a typo in a comment.
Pearl: reorder helper functions.
Pearl: permit drawing a whole loop in one drag.
Mosaic: fix uninitialised field in dup_game().
Mosaic: fix inconsistently drawn keyboard cursor.
Windows: reinstate SetWindowPos in check_window_size.
windows.c: fix some mis-indented pieces of code.
Mosaic: fix encoding of aggressiveness in game params.
Try to fix flakiness in the NestedVM build.
Pattern: fix a compile warning about memset bounds.
tree234: avoid an uninitialised-variable warning.
gtk.c: squelch uninitialised-variable warning.
malloc.c: check allocation sizes against PTRDIFF_MAX.
malloc.c: fix copy-pasted comment from the Dawn Of Time.