chiark / gitweb /
Stop using CLUE2CHAR to translate clues into text; just do the obvious
authorSimon Tatham <anakin@pobox.com>
Sun, 24 Feb 2013 12:52:17 +0000 (12:52 +0000)
committerSimon Tatham <anakin@pobox.com>
Sun, 24 Feb 2013 12:52:17 +0000 (12:52 +0000)
sprintf in both locations (screen and print) that need it. Fixes a bug
in which clues greater than 9 came out as hex digits in printed
puzzles.

[originally from svn r9765]

loopy.c

diff --git a/loopy.c b/loopy.c
index 0ee109891feb756dd11534194d60543219c49f86..6b3d53e312d9cc79b7cca0a42b9c434e790a70c9 100644 (file)
--- a/loopy.c
+++ b/loopy.c
@@ -2997,14 +2997,9 @@ static void game_redraw_clue(drawing *dr, game_drawstate *ds,
     grid *g = state->game_grid;
     grid_face *f = g->faces + i;
     int x, y;
-    char c[3];
+    char c[20];
 
-    if (state->clues[i] < 10) {
-        c[0] = CLUE2CHAR(state->clues[i]);
-        c[1] = '\0';
-    } else {
-        sprintf(c, "%d", state->clues[i]);
-    }
+    sprintf(c, "%d", state->clues[i]);
 
     face_text_pos(ds, g, f, &x, &y);
     draw_text(dr, x, y,
@@ -3339,10 +3334,9 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
         grid_face *f = g->faces + i;
         int clue = state->clues[i];
         if (clue >= 0) {
-            char c[2];
+            char c[20];
             int x, y;
-            c[0] = CLUE2CHAR(clue);
-            c[1] = '\0';
+            sprintf(c, "%d", state->clues[i]);
             face_text_pos(ds, g, f, &x, &y);
             draw_text(dr, x, y,
                       FONT_VARIABLE, ds->tilesize / 2,