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; }