`Solve' operation on an already solved map without an aux_info was
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 22 Aug 2005 09:27:52 +0000 (09:27 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 22 Aug 2005 09:27:52 +0000 (09:27 +0000)
returning NULL due to no moves being required, leading to a strange
error message. Trivial fix.

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

map.c

diff --git a/map.c b/map.c
index c65d3da..2e1e097 100644 (file)
--- a/map.c
+++ b/map.c
@@ -1563,8 +1563,10 @@ static char *solve_game(game_state *state, game_state *currstate,
            return NULL;
        }
 
-       retlen = retsize = 0;
-       ret = NULL;
+        retsize = 64;
+        ret = snewn(retsize, char);
+        strcpy(ret, "S");
+        retlen = 1;
 
        for (i = 0; i < state->map->n; i++) {
             int len;
@@ -1574,8 +1576,7 @@ static char *solve_game(game_state *state, game_state *currstate,
                 continue;
            assert(!state->map->immutable[i]);
 
-            len = sprintf(buf, "%s%d:%d", retlen ? ";" : "S;",
-                         colouring[i], i);
+            len = sprintf(buf, ";%d:%d", colouring[i], i);
             if (retlen + len >= retsize) {
                 retsize = retlen + len + 256;
                 ret = sresize(ret, retsize, char);