From: simon Date: Thu, 5 Jul 2007 18:57:50 +0000 (+0000) Subject: A user points out that Loopy's solver relies on elements of the X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/commitdiff_plain/aa8ccc556dd3f14f587d1661ba228c3311f15b2d A user points out that Loopy's solver relies on elements of the `clues' array being able to be -1, so we must explicitly declare it as `signed char' or it will break on platforms whose default char is unsigned. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7636 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/loopy.c b/loopy.c index f0344fe..10619af 100644 --- a/loopy.c +++ b/loopy.c @@ -58,7 +58,7 @@ struct game_state { int w, h; /* Put -1 in a square that doesn't get a clue */ - char *clues; + signed char *clues; /* Arrays of line states, stored left-to-right, top-to-bottom */ char *hl, *vl; @@ -299,7 +299,7 @@ static game_state *dup_game(game_state *state) ret->solved = state->solved; ret->cheated = state->cheated; - ret->clues = snewn(SQUARE_COUNT(state), char); + ret->clues = snewn(SQUARE_COUNT(state), signed char); memcpy(ret->clues, state->clues, SQUARE_COUNT(state)); ret->hl = snewn(HL_COUNT(state), char); @@ -1425,7 +1425,7 @@ enum { SQUARE_LIT, SQUARE_UNLIT }; * the dimensions provided by said game_state) */ static void add_full_clues(game_state *state, random_state *rs) { - char *clues; + signed char *clues; char *board; int i, j, a, b, c; int board_area = SQUARE_COUNT(state); @@ -1722,7 +1722,7 @@ static char *new_game_desc(game_params *params, random_state *rs, state->h = params->h; state->w = params->w; - state->clues = snewn(SQUARE_COUNT(params), char); + state->clues = snewn(SQUARE_COUNT(params), signed char); state->hl = snewn(HL_COUNT(params), char); state->vl = snewn(VL_COUNT(params), char); @@ -1774,7 +1774,7 @@ static game_state *new_game(midend *me, game_params *params, char *desc) state->h = params->h; state->w = params->w; - state->clues = snewn(SQUARE_COUNT(params), char); + state->clues = snewn(SQUARE_COUNT(params), signed char); state->hl = snewn(HL_COUNT(params), char); state->vl = snewn(VL_COUNT(params), char);