simon-svn: puzzles: simon

Commits to Tartarus CVS repository. tartarus-commits at lists.tartarus.org
Sat Jan 19 18:56:05 GMT 2013


SVN root:       svn://svn.tartarus.org/sgt
Changes by:     simon
Revision:       9749
Date:           2013-01-19 18:56:05 +0000 (Sat, 19 Jan 2013)

Log message (25 lines):
Revamp of the Windows command-line parsing and puzzle-loading code.

The Windows puzzles now accept similar command-line syntax to the GTK
ones, in that you can give them either a game ID (descriptive, random
or just plain params) or the name of a save file. Unlike the GTK ones,
however, the save file interpretation is tried first; this is because
some puzzles (e.g. Black Box) will interpret any old string as a valid
(if boring) game ID, and unlike the GTK puzzles it's not feasible to
require users to disambiguate via a command-line option, because on
Windows a thing that might easily happen is that a user passes a save
file to a puzzle binary via 'Open With' in the GUI shell, where they
don't get the chance to add extra options.

In order to make this work sensibly in the all-in-one Windows app, I
had to get round to another thing I've been planning to do for a
while, which is to write a function to examine a saved game file and
find out which puzzle it's for. So the combined Windows binary will
auto-switch to the right game if you pass a save file on its command
line, and also if you use Load while the program is running.

Another utility function I needed is one to split the WinMain single
command line string into argv. For this I've imported a copy of
split_into_argv() from Windows PuTTY (which doesn't affect this
package's list of copyright holders, since that function was all my
own code anyway).

Modified files:
U   puzzles/midend.c
U   puzzles/puzzles.h
U   puzzles/windows.c

Links:
http://svn.tartarus.org/sgt/?rev=9749&view=rev
http://svn.tartarus.org/sgt/puzzles/midend.c?rev=9749&r1=9748&r2=9749
http://svn.tartarus.org/sgt/puzzles/puzzles.h?rev=9749&r1=9748&r2=9749
http://svn.tartarus.org/sgt/puzzles/windows.c?rev=9749&r1=9748&r2=9749



More information about the tartarus-commits mailing list