Marginally greater robustness in the face of solve_game() failing to
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 11 Sep 2005 11:57:24 +0000 (11:57 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 11 Sep 2005 11:57:24 +0000 (11:57 +0000)
return an error message.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6288 cda61777-01e9-0310-a592-d414129be87e

midend.c

index 64edfd3..cc360b5 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -1167,12 +1167,15 @@ char *midend_solve(midend *me)
     if (me->statepos < 1)
        return "No game set up to solve";   /* _shouldn't_ happen! */
 
-    msg = "Solve operation failed";    /* game _should_ overwrite on error */
+    msg = NULL;
     movestr = me->ourgame->solve(me->states[0].state,
                                 me->states[me->statepos-1].state,
                                 me->aux_info, &msg);
-    if (!movestr)
+    if (!movestr) {
+       if (!msg)
+           msg = "Solve operation failed";   /* _shouldn't_ happen, but can */
        return msg;
+    }
     s = me->ourgame->execute_move(me->states[me->statepos-1].state, movestr);
     assert(s);