diff options
| -rw-r--r-- | Buildscr | 10 | ||||
| -rw-r--r-- | blackbox.c | 2 | ||||
| -rw-r--r-- | cube.c | 2 | ||||
| -rw-r--r-- | devel.but | 3 | ||||
| -rw-r--r-- | dominosa.c | 2 | ||||
| -rw-r--r-- | emcc.c | 2 | ||||
| -rw-r--r-- | fifteen.c | 2 | ||||
| -rw-r--r-- | filling.c | 2 | ||||
| -rw-r--r-- | galaxies.c | 9 | ||||
| -rw-r--r-- | grid.c | 15 | ||||
| -rw-r--r-- | grid.h | 4 | ||||
| -rw-r--r-- | gtk.c | 10 | ||||
| -rw-r--r-- | guess.c | 8 | ||||
| -rw-r--r-- | inertia.c | 3 | ||||
| -rw-r--r-- | keen.c | 4 | ||||
| -rw-r--r-- | latin.c | 8 | ||||
| -rw-r--r-- | latin.h | 4 | ||||
| -rw-r--r-- | loopy.c | 5 | ||||
| -rw-r--r-- | map.c | 15 | ||||
| -rw-r--r-- | midend.c | 19 | ||||
| -rw-r--r-- | mines.c | 2 | ||||
| -rw-r--r-- | osx.m | 2 | ||||
| -rw-r--r-- | ps.c | 4 | ||||
| -rw-r--r-- | puzzles.h | 2 | ||||
| -rw-r--r-- | range.c | 2 | ||||
| -rw-r--r-- | samegame.c | 3 | ||||
| -rw-r--r-- | signpost.c | 7 | ||||
| -rw-r--r-- | singles.c | 6 | ||||
| -rw-r--r-- | sixteen.c | 3 | ||||
| -rw-r--r-- | slant.c | 4 | ||||
| -rw-r--r-- | solo.c | 24 | ||||
| -rw-r--r-- | tents.c | 3 | ||||
| -rw-r--r-- | twiddle.c | 4 | ||||
| -rw-r--r-- | unequal.c | 6 | ||||
| -rw-r--r-- | windows.c | 2 |
35 files changed, 107 insertions, 96 deletions
@@ -25,7 +25,7 @@ in puzzles do echo '$#define VER "Version $(Version)"' >> version.h in puzzles do perl -i -pe 's/Unidentified build/$(Version)/' osx-info.plist # First build some local binaries, to run the icon build. -in puzzles do perl mkfiles.pl -U +in puzzles do perl mkfiles.pl -U CFLAGS='-Wwrite-strings -Werror' in puzzles do make # Now build the screenshots and icons. @@ -45,7 +45,7 @@ in puzzles do ./mkauto.sh # Build the OS X .dmg archive. delegate osx in puzzles do make -f Makefile.osx clean - in puzzles do make -f Makefile.osx release VER=-DVER=$(Version) + in puzzles do make -f Makefile.osx release VER=-DVER=$(Version) XFLAGS='-Wwrite-strings -Werror' return puzzles/Puzzles.dmg enddelegate @@ -56,7 +56,7 @@ in puzzles do mason.pl --args '{"version":"$(Version)","descfile":"gamedesc.txt" in puzzles do perl winiss.pl $(Version) gamedesc.txt > puzzles.iss ifneq "$(VISUAL_STUDIO)" "yes" then in puzzles with clangcl64 do Platform=x64 make -f Makefile.clangcl clean - in puzzles with clangcl64 do Platform=x64 make -f Makefile.clangcl VER=-DVER=$(Version) + in puzzles with clangcl64 do Platform=x64 make -f Makefile.clangcl VER=-DVER=$(Version) XFLAGS='-Wwrite-strings -Werror' # Code-sign the binaries, if the local bob config provides a script # to do so. We assume here that the script accepts an -i option to # provide a 'more info' URL, and an optional -n option to provide a @@ -144,7 +144,7 @@ ifneq "$(JAVA_UNFINISHED)" "" in puzzles do perl mkfiles.pl # Build the Java applets. delegate nestedvm - in puzzles do make -f Makefile.nestedvm NESTEDVM="$$NESTEDVM" VER=-DVER=$(Version) + in puzzles do make -f Makefile.nestedvm NESTEDVM="$$NESTEDVM" VER=-DVER=$(Version) XFLAGS="-Wwrite-strings -Werror" return puzzles/*.jar enddelegate @@ -154,7 +154,7 @@ enddelegate in puzzles do mkdir js # so we can tell output .js files from emcc*.js delegate emscripten in puzzles do make -f Makefile.emcc OUTPREFIX=js/ clean - in puzzles do make -f Makefile.emcc OUTPREFIX=js/ + in puzzles do make -f Makefile.emcc OUTPREFIX=js/ XFLAGS="-Wwrite-strings -Werror" return puzzles/js/*.js enddelegate @@ -251,7 +251,7 @@ static const char *validate_desc(const game_params *params, const char *desc) { int nballs, dlen = strlen(desc), i; unsigned char *bmp; - char *ret; + const char *ret; /* the bitmap is 2+(nballs*2) long; the hex version is double that. */ nballs = ((dlen/2)-2)/2; @@ -238,7 +238,7 @@ static game_params *default_params(void) static int game_fetch_preset(int i, char **name, game_params **params) { game_params *ret = snew(game_params); - char *str; + const char *str; switch (i) { case 0: @@ -3296,8 +3296,7 @@ visually activate and deactivate a redo button. \H{midend-serialise} \cw{midend_serialise()} \c void midend_serialise(midend *me, -\c void (*write)(void *ctx, void *buf, int len), -\c void *wctx); +\c void (*write)(void *ctx, const void *buf, int len), void *wctx); Calling this function causes the mid-end to convert its entire internal state into a long ASCII text string, and to pass that @@ -749,7 +749,7 @@ static const char *validate_desc(const game_params *params, const char *desc) int n = params->n, w = n+2, h = n+1, wh = w*h; int *occurrences; int i, j; - char *ret; + const char *ret; ret = NULL; occurrences = snewn(n+1, int); @@ -787,7 +787,7 @@ struct savefile_write_ctx { size_t pos; }; -static void savefile_write(void *vctx, void *buf, int len) +static void savefile_write(void *vctx, const void *buf, int len) { struct savefile_write_ctx *ctx = (struct savefile_write_ctx *)vctx; if (ctx->buffer) @@ -273,7 +273,7 @@ static char *new_game_desc(const game_params *params, random_state *rs, static const char *validate_desc(const game_params *params, const char *desc) { const char *p; - char *err; + const char *err; int i, area; int *used; @@ -68,7 +68,7 @@ static unsigned char verbose; -static void printv(char *fmt, ...) { +static void printv(const char *fmt, ...) { #ifndef PALM if (verbose) { va_list va; @@ -667,7 +667,8 @@ static char *diff_game(const game_state *src, const game_state *dest, int issolve) { int movelen = 0, movesize = 256, x, y, len; - char *move = snewn(movesize, char), buf[80], *sep = ""; + char *move = snewn(movesize, char), buf[80]; + const char *sep = ""; char achar = issolve ? 'a' : 'A'; space *sps, *spd; @@ -1523,10 +1524,10 @@ static int dots_too_close(game_state *state) } static game_state *load_game(const game_params *params, const char *desc, - char **why_r) + const char **why_r) { game_state *state = blank_game(params->w, params->h); - char *why = NULL; + const char *why = NULL; int i, x, y, n; unsigned int df; @@ -1572,7 +1573,7 @@ fail: static const char *validate_desc(const game_params *params, const char *desc) { - char *why = NULL; + const char *why = NULL; game_state *dummy = load_game(params, desc, &why); if (dummy) { free_game(dummy); @@ -1529,8 +1529,8 @@ static void grid_size_triangular(int width, int height, *yextent = height * vec_y; } -static char *grid_validate_desc_triangular(grid_type type, int width, - int height, const char *desc) +static const char *grid_validate_desc_triangular(grid_type type, int width, + int height, const char *desc) { /* * Triangular grids: an absent description is valid (indicating @@ -2855,8 +2855,9 @@ static char *grid_new_desc_penrose(grid_type type, int width, int height, random return dupstr(gd); } -static char *grid_validate_desc_penrose(grid_type type, int width, int height, - const char *desc) +static const char *grid_validate_desc_penrose(grid_type type, + int width, int height, + const char *desc) { int tilesize = PENROSE_TILESIZE, startsz, depth, xoff, yoff, aoff, inner_radius; double outer_radius; @@ -3032,8 +3033,8 @@ char *grid_new_desc(grid_type type, int width, int height, random_state *rs) } } -char *grid_validate_desc(grid_type type, int width, int height, - const char *desc) +const char *grid_validate_desc(grid_type type, int width, int height, + const char *desc) { if (type == GRID_PENROSE_P2 || type == GRID_PENROSE_P3) { return grid_validate_desc_penrose(type, width, height, desc); @@ -3048,7 +3049,7 @@ char *grid_validate_desc(grid_type type, int width, int height, grid *grid_new(grid_type type, int width, int height, const char *desc) { - char *err = grid_validate_desc(type, width, height, desc); + const char *err = grid_validate_desc(type, width, height, desc); if (err) assert(!"Invalid grid description."); return grid_news[type](width, height, desc); @@ -116,8 +116,8 @@ typedef enum grid_type { GRIDGEN_LIST(ENUM) GRID_TYPE_MAX } grid_type; /* Free directly after use if non-NULL. Will never contain an underscore * (so clients can safely use that as a separator). */ char *grid_new_desc(grid_type type, int width, int height, random_state *rs); -char *grid_validate_desc(grid_type type, int width, int height, - const char *desc); +const char *grid_validate_desc(grid_type type, int width, int height, + const char *desc); grid *grid_new(grid_type type, int width, int height, const char *desc); @@ -2168,7 +2168,7 @@ static void filesel_ok(GtkButton *button, gpointer data) fe->filesel_name = dupstr(name); } -static char *file_selector(frontend *fe, char *title, int save) +static char *file_selector(frontend *fe, const char *title, int save) { GtkWidget *filesel = gtk_file_selection_new(title); @@ -2199,7 +2199,7 @@ static char *file_selector(frontend *fe, char *title, int save) #else -static char *file_selector(frontend *fe, char *title, int save) +static char *file_selector(frontend *fe, const char *title, int save) { char *filesel_name = NULL; @@ -2231,7 +2231,7 @@ struct savefile_write_ctx { int error; }; -static void savefile_write(void *wctx, void *buf, int len) +static void savefile_write(void *wctx, const void *buf, int len) { struct savefile_write_ctx *ctx = (struct savefile_write_ctx *)wctx; if (fwrite(buf, 1, len, ctx->fp) < len) @@ -2396,7 +2396,7 @@ static void menu_about_event(GtkMenuItem *menuitem, gpointer data) } static GtkWidget *add_menu_ui_item( - frontend *fe, GtkContainer *cont, char *text, int action, + frontend *fe, GtkContainer *cont, const char *text, int action, int accel_key, int accel_keyqual) { GtkWidget *menuitem = gtk_menu_item_new_with_label(text); @@ -2928,7 +2928,7 @@ int main(int argc, char **argv) int soln = FALSE, colour = FALSE; float scale = 1.0F; float redo_proportion = 0.0F; - char *savefile = NULL, *savesuffix = NULL; + const char *savefile = NULL, *savesuffix = NULL; char *arg = NULL; int argtype = ARG_EITHER; char *screenshot_file = NULL; @@ -74,7 +74,7 @@ static game_params *dup_params(const game_params *params) } static const struct { - char *name; + const char *name; game_params params; } guess_presets[] = { {"Standard", {6, 4, 10, FALSE, TRUE}}, @@ -440,7 +440,8 @@ static void free_ui(game_ui *ui) static char *encode_ui(const game_ui *ui) { - char *ret, *p, *sep; + char *ret, *p; + const char *sep; int i; /* @@ -614,7 +615,8 @@ static int mark_pegs(pegrow guess, const pegrow solution, int ncols) static char *encode_move(const game_state *from, game_ui *ui) { - char *buf, *p, *sep; + char *buf, *p; + const char *sep; int len, i; len = ui->curr_pegs->npegs * 20 + 2; @@ -738,7 +738,8 @@ static char *solve_game(const game_state *state, const game_state *currstate, int *unvisited; int circuitlen, circuitsize; int head, tail, pass, i, j, n, x, y, d, dd; - char *err, *soln, *p; + const char *err; + char *soln, *p; /* * Before anything else, deal with the special case in which @@ -727,7 +727,7 @@ static char *encode_block_structure(char *p, int w, int *dsf) return q; } -static char *parse_block_structure(const char **p, int w, int *dsf) +static const char *parse_block_structure(const char **p, int w, int *dsf) { int a = w*w; int pos = 0; @@ -1207,7 +1207,7 @@ static const char *validate_desc(const game_params *params, const char *desc) { int w = params->w, a = w*w; int *dsf; - char *ret; + const char *ret; const char *p = desc; int i; @@ -73,7 +73,7 @@ void latin_solver_place(struct latin_solver *solver, int x, int y, int n) int latin_solver_elim(struct latin_solver *solver, int start, int step #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ) { @@ -150,7 +150,7 @@ int latin_solver_set(struct latin_solver *solver, struct latin_solver_scratch *scratch, int start, int step1, int step2 #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ) { @@ -499,7 +499,7 @@ int latin_solver_forcing(struct latin_solver *solver, (xt == x || yt == y)) { #ifdef STANDALONE_SOLVER if (solver_show_working) { - char *sep = ""; + const char *sep = ""; int xl, yl; printf("%*sforcing chain, %s at ends of ", solver_recurse_depth*4, "", @@ -775,7 +775,7 @@ static int latin_solver_recurse #ifdef STANDALONE_SOLVER if (solver_show_working) { - char *sep = ""; + const char *sep = ""; printf("%*srecursing on (%d,%d) [", solver_recurse_depth*4, "", x+1, y+1); for (i = 0; i < j; i++) { @@ -39,7 +39,7 @@ void latin_solver_place(struct latin_solver *solver, int x, int y, int n); /* Positional elimination. */ int latin_solver_elim(struct latin_solver *solver, int start, int step #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ); @@ -49,7 +49,7 @@ int latin_solver_set(struct latin_solver *solver, struct latin_solver_scratch *scratch, int start, int step1, int step2 #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ); @@ -295,7 +295,7 @@ static grid_type grid_types[] = { GRIDLIST(GRID_GRIDTYPE) }; #define NUM_GRID_TYPES (sizeof(grid_types) / sizeof(grid_types[0])) static const struct { int amin, omin; - char *aerr, *oerr; + const char *aerr, *oerr; } grid_size_limits[] = { GRIDLIST(GRID_SIZES) }; /* Generates a (dynamically allocated) new grid, according to the @@ -760,7 +760,8 @@ static const char *validate_desc(const game_params *params, const char *desc) { int count = 0; grid *g; - char *grid_desc, *ret; + char *grid_desc; + const char *ret; /* It's pretty inefficient to do this just for validation. All we need to * know is the precise number of faces. */ @@ -873,7 +873,7 @@ static const char colnames[FOUR] = { 'R', 'Y', 'G', 'B' }; static int place_colour(struct solver_scratch *sc, int *colouring, int index, int colour #ifdef SOLVER_DIAGNOSTICS - , char *verb + , const char *verb #endif ) { @@ -920,7 +920,7 @@ static char *colourset(char *buf, int set) { int i; char *p = buf; - char *sep = ""; + const char *sep = ""; for (i = 0; i < FOUR; i++) if (set & (1 << i)) { @@ -1214,7 +1214,8 @@ static int map_solver(struct solver_scratch *sc, (sc->possible[k] & currc)) { #ifdef SOLVER_DIAGNOSTICS if (verbose) { - char buf[80], *sep = ""; + char buf[80]; + const char *sep = ""; int r; printf("%*sforcing chain, colour %s, ", @@ -1699,8 +1700,8 @@ static char *new_game_desc(const game_params *params, random_state *rs, return ret; } -static char *parse_edge_list(const game_params *params, const char **desc, - int *map) +static const char *parse_edge_list(const game_params *params, + const char **desc, int *map) { int w = params->w, h = params->h, wh = w*h, n = params->n; int i, k, pos, state; @@ -1781,7 +1782,7 @@ static const char *validate_desc(const game_params *params, const char *desc) int w = params->w, h = params->h, wh = w*h, n = params->n; int area; int *map; - char *ret; + const char *ret; map = snewn(2*wh, int); ret = parse_edge_list(params, &desc, map); @@ -1841,7 +1842,7 @@ static game_state *new_game(midend *me, const game_params *params, p = desc; { - char *ret; + const char *ret; ret = parse_edge_list(params, &p, state->map->map); assert(!ret); } @@ -118,7 +118,7 @@ struct deserialise_data { */ static const char *midend_deserialise_internal( midend *me, int (*read)(void *ctx, void *buf, int len), void *rctx, - char *(*check)(void *ctx, midend *, const struct deserialise_data *), + const char *(*check)(void *ctx, midend *, const struct deserialise_data *), void *cctx); void midend_reset_tilesize(midend *me) @@ -384,7 +384,7 @@ void midend_force_redraw(midend *me) midend_redraw(me); } -static void newgame_serialise_write(void *ctx, void *buf, int len) +static void newgame_serialise_write(void *ctx, const void *buf, int len) { midend *const me = ctx; int new_len; @@ -547,7 +547,7 @@ struct newgame_undo_deserialise_check_ctx { int refused; }; -static char *newgame_undo_deserialise_check( +static const char *newgame_undo_deserialise_check( void *vctx, midend *me, const struct deserialise_data *data) { struct newgame_undo_deserialise_check_ctx *ctx = @@ -1333,7 +1333,8 @@ void midend_supersede_game_desc(midend *me, const char *desc, config_item *midend_get_config(midend *me, int which, char **wintitle) { - char *titlebuf, *parstr, *rest; + char *titlebuf, *parstr; + const char *rest; config_item *ret; char sep; @@ -1765,7 +1766,7 @@ char *midend_rewrite_statusbar(midend *me, const char *text) #define SERIALISE_VERSION "1" void midend_serialise(midend *me, - void (*write)(void *ctx, void *buf, int len), + void (*write)(void *ctx, const void *buf, int len), void *wctx) { int i; @@ -1781,7 +1782,7 @@ void midend_serialise(midend *me, */ #define wr(h,s) do { \ char hbuf[80]; \ - char *str = (s); \ + const char *str = (s); \ char lbuf[9]; \ copy_left_justified(lbuf, sizeof(lbuf), h); \ sprintf(hbuf, "%s:%d:", lbuf, (int)strlen(str)); \ @@ -1922,7 +1923,7 @@ void midend_serialise(midend *me, */ static const char *midend_deserialise_internal( midend *me, int (*read)(void *ctx, void *buf, int len), void *rctx, - char *(*check)(void *ctx, midend *, const struct deserialise_data *data), + const char *(*check)(void *ctx, midend *, const struct deserialise_data *), void *cctx) { struct deserialise_data data; @@ -1932,7 +1933,7 @@ static const char *midend_deserialise_internal( char *val = NULL; /* Initially all errors give the same report */ - char *ret = "Data does not appear to be a saved game file"; + const char *ret = "Data does not appear to be a saved game file"; data.seed = data.parstr = data.desc = data.privdesc = NULL; data.auxinfo = data.uistr = data.cparstr = NULL; @@ -2309,7 +2310,7 @@ const char *identify_game(char **name, char *val = NULL; /* Initially all errors give the same report */ - char *ret = "Data does not appear to be a saved game file"; + const char *ret = "Data does not appear to be a saved game file"; *name = NULL; @@ -2558,7 +2558,7 @@ uncover: * can. */ char *p = buf; - char *sep = ""; + const char *sep = ""; for (dy = -1; dy <= +1; dy++) for (dx = -1; dx <= +1; dx++) @@ -152,7 +152,7 @@ void get_random_seed(void **randseed, int *randseedsize) *randseedsize = sizeof(time_t); } -static void savefile_write(void *wctx, void *buf, int len) +static void savefile_write(void *wctx, const void *buf, int len) { FILE *fp = (FILE *)wctx; fwrite(buf, 1, len, fp); @@ -21,7 +21,7 @@ struct psdata { drawing *drawing; }; -static void ps_printf(psdata *ps, char *fmt, ...) +static void ps_printf(psdata *ps, const char *fmt, ...) { va_list ap; @@ -73,7 +73,7 @@ static void ps_fill(psdata *ps, int colour) } } -static void ps_setcolour_internal(psdata *ps, int colour, char *suffix) +static void ps_setcolour_internal(psdata *ps, int colour, const char *suffix) { int hatch; float r, g, b; @@ -325,7 +325,7 @@ void midend_supersede_game_desc(midend *me, const char *desc, const char *privdesc); char *midend_rewrite_statusbar(midend *me, const char *text); void midend_serialise(midend *me, - void (*write)(void *ctx, void *buf, int len), + void (*write)(void *ctx, const void *buf, int len), void *wctx); const char *midend_deserialise(midend *me, int (*read)(void *ctx, void *buf, int len), @@ -66,7 +66,7 @@ #define setmember(obj, field) ( (obj) . field = field ) -static char *nfmtstr(int n, char *fmt, ...) { +static char *nfmtstr(int n, const char *fmt, ...) { va_list va; char *ret = snewn(n+1, char); va_start(va, fmt); @@ -1108,7 +1108,8 @@ static void game_changed_state(game_ui *ui, const game_state *oldstate, static char *sel_movedesc(game_ui *ui, const game_state *state) { int i; - char *ret, *sep, buf[80]; + char *ret, buf[80]; + const char *sep; int retlen, retsize; retsize = 256; @@ -497,10 +497,11 @@ static void free_game(game_state *state) } static void unpick_desc(const game_params *params, const char *desc, - game_state **sout, char **mout) + game_state **sout, const char **mout) { game_state *state = blank_game(params->w, params->h); - char *msg = NULL, c; + const char *msg = NULL; + char c; int num = 0, i = 0; while (*desc) { @@ -845,7 +846,7 @@ generate: static const char *validate_desc(const game_params *params, const char *desc) { - char *ret = NULL; + const char *ret = NULL; unpick_desc(params, desc, NULL, &ret); return ret; @@ -330,10 +330,10 @@ static int c2n(char c) { } static void unpick_desc(const game_params *params, const char *desc, - game_state **sout, char **mout) + game_state **sout, const char **mout) { game_state *state = blank_game(params->w, params->h); - char *msg = NULL; + const char *msg = NULL; int num = 0, i = 0; if (strlen(desc) != state->n) { @@ -1412,7 +1412,7 @@ randomise: static const char *validate_desc(const game_params *params, const char *desc) { - char *ret = NULL; + const char *ret = NULL; unpick_desc(params, desc, NULL, &ret); return ret; @@ -398,8 +398,7 @@ static char *new_game_desc(const game_params *params, random_state *rs, static const char *validate_desc(const game_params *params, const char *desc) { - const char *p; - char *err; + const char *p, *err; int i, area; int *used; @@ -413,7 +413,7 @@ static void fill_square(int w, int h, int x, int y, int v, } static int vbitmap_clear(int w, int h, struct solver_scratch *sc, - int x, int y, int vbits, char *reason, ...) + int x, int y, int vbits, const char *reason, ...) { int done_something = FALSE; int vbit; @@ -734,7 +734,7 @@ static int slant_solve(int w, int h, const signed char *clues, int fs, bs, v; int c1, c2; #ifdef SOLVER_DIAGNOSTICS - char *reason = "<internal error>"; + const char *reason = "<internal error>"; #endif if (soln[y*w+x]) @@ -299,9 +299,9 @@ static game_params *dup_params(const game_params *params) static int game_fetch_preset(int i, char **name, game_params **params) { static struct { - char *title; + const char *title; game_params params; - } presets[] = { + } const presets[] = { { "2x2 Trivial", { 2, 2, SYMM_ROT2, DIFF_BLOCK, DIFF_KMINMAX, FALSE, FALSE } }, { "2x3 Basic", { 2, 3, SYMM_ROT2, DIFF_SIMPLE, DIFF_KMINMAX, FALSE, FALSE } }, { "3x3 Trivial", { 3, 3, SYMM_ROT2, DIFF_BLOCK, DIFF_KMINMAX, FALSE, FALSE } }, @@ -831,19 +831,20 @@ static void solver_place(struct solver_usage *usage, int x, int y, int n) */ struct solver_scratch; static int solver_elim(struct solver_usage *usage, int *indices, - char *fmt, ...) __attribute__((format(printf,3,4))); + const char *fmt, ...) + __attribute__((format(printf,3,4))); static int solver_intersect(struct solver_usage *usage, - int *indices1, int *indices2, char *fmt, ...) + int *indices1, int *indices2, const char *fmt, ...) __attribute__((format(printf,4,5))); static int solver_set(struct solver_usage *usage, struct solver_scratch *scratch, - int *indices, char *fmt, ...) + int *indices, const char *fmt, ...) __attribute__((format(printf,4,5))); #endif static int solver_elim(struct solver_usage *usage, int *indices #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ) { @@ -907,7 +908,7 @@ static int solver_elim(struct solver_usage *usage, int *indices static int solver_intersect(struct solver_usage *usage, int *indices1, int *indices2 #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ) { @@ -985,7 +986,7 @@ static int solver_set(struct solver_usage *usage, struct solver_scratch *scratch, int *indices #ifdef STANDALONE_SOLVER - , char *fmt, ... + , const char *fmt, ... #endif ) { @@ -1351,7 +1352,7 @@ static int solver_forcing(struct solver_usage *usage, (ondiag1(yt*cr+xt) && ondiag1(y*cr+x)))))) { #ifdef STANDALONE_SOLVER if (solver_show_working) { - char *sep = ""; + const char *sep = ""; int xl, yl; printf("%*sforcing chain, %d at ends of ", solver_recurse_depth*4, "", orign); @@ -2516,7 +2517,7 @@ static void solver(int cr, struct block_structure *blocks, #ifdef STANDALONE_SOLVER if (solver_show_working) { - char *sep = ""; + const char *sep = ""; printf("%*srecursing on (%d,%d) [", solver_recurse_depth*4, "", x + 1, y + 1); for (i = 0; i < j; i++) { @@ -3154,7 +3155,8 @@ static int symmetries(const game_params *params, int x, int y, static char *encode_solve_move(int cr, digit *grid) { int i, len; - char *ret, *p, *sep; + char *ret, *p; + const char *sep; /* * It's surprisingly easy to work out _exactly_ how long this @@ -1561,7 +1561,8 @@ static char *interpret_move(const game_state *state, game_ui *ui, if ((IS_MOUSE_DRAG(button) || IS_MOUSE_RELEASE(button)) && ui->drag_button > 0) { int xmin, ymin, xmax, ymax; - char *buf, *sep; + char *buf; + const char *sep; int buflen, bufsize, tmplen; x = FROMCOORD(x); @@ -80,9 +80,9 @@ static game_params *dup_params(const game_params *params) static int game_fetch_preset(int i, char **name, game_params **params) { static struct { - char *title; + const char *title; game_params params; - } presets[] = { + } const presets[] = { { "3x3 rows only", { 3, 3, 2, TRUE, FALSE } }, { "3x3 normal", { 3, 3, 2, FALSE, FALSE } }, { "3x3 orientable", { 3, 3, 2, FALSE, TRUE } }, @@ -1195,12 +1195,12 @@ generate: } static game_state *load_game(const game_params *params, const char *desc, - char **why_r) + const char **why_r) { game_state *state = blank_game(params->order, params->adjacent); const char *p = desc; int i = 0, n, o = params->order, x, y; - char *why = NULL; + const char *why = NULL; while (*p) { while (*p >= 'a' && *p <= 'z') { @@ -1293,7 +1293,7 @@ static game_state *new_game(midend *me, const game_params *params, static const char *validate_desc(const game_params *params, const char *desc) { - char *why = NULL; + const char *why = NULL; game_state *dummy = load_game(params, desc, &why); if (dummy) { free_game(dummy); @@ -1551,7 +1551,7 @@ static frontend *frontend_new(HINSTANCE inst) return fe; } -static void savefile_write(void *wctx, void *buf, int len) +static void savefile_write(void *wctx, const void *buf, int len) { FILE *fp = (FILE *)wctx; fwrite(buf, 1, len, fp); |