aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2011-12-28 18:17:30 +0000
committerSimon Tatham <anakin@pobox.com>2011-12-28 18:17:30 +0000
commit7024735f89c7b04b57e7ea41d5104a3455c91348 (patch)
tree249519cde28cd309d8a8d85d5e11adbfe4566652
parentb5cb02b61ac70ce92631c1a39d66e7668e870c8a (diff)
downloadpuzzles-7024735f89c7b04b57e7ea41d5104a3455c91348.zip
puzzles-7024735f89c7b04b57e7ea41d5104a3455c91348.tar.gz
puzzles-7024735f89c7b04b57e7ea41d5104a3455c91348.tar.bz2
puzzles-7024735f89c7b04b57e7ea41d5104a3455c91348.tar.xz
Allow --save to work with --soln, causing saved game files to be
written out with the Solve operation having already been performed. [originally from svn r9375]
-rw-r--r--gtk.c10
-rw-r--r--midend.c3
2 files changed, 12 insertions, 1 deletions
diff --git a/gtk.c b/gtk.c
index d45a76d..c156651 100644
--- a/gtk.c
+++ b/gtk.c
@@ -2698,6 +2698,16 @@ int main(int argc, char **argv)
char *realname = snewn(40 + strlen(savefile) +
strlen(savesuffix), char);
sprintf(realname, "%s%d%s", savefile, i, savesuffix);
+
+ if (soln) {
+ char *err = midend_solve(me);
+ if (err) {
+ fprintf(stderr, "%s: unable to show solution: %s\n",
+ realname, err);
+ return 1;
+ }
+ }
+
ctx.fp = fopen(realname, "w");
if (!ctx.fp) {
fprintf(stderr, "%s: open: %s\n", realname,
diff --git a/midend.c b/midend.c
index 8f4e4c9..c1f3a01 100644
--- a/midend.c
+++ b/midend.c
@@ -1331,7 +1331,8 @@ char *midend_solve(midend *me)
me->anim_time = 0.0;
midend_finish_move(me);
}
- midend_redraw(me);
+ if (me->drawing)
+ midend_redraw(me);
midend_set_timer(me);
return NULL;
}