From b0614e6da8f8a709e8fad797d7bb6ba05491ac79 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 22 Aug 2005 09:27:52 +0000 Subject: [PATCH] `Solve' operation on an already solved map without an aux_info was returning NULL due to no moves being required, leading to a strange error message. Trivial fix. [originally from svn r6198] --- map.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/map.c b/map.c index c65d3da..2e1e097 100644 --- 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);