From: PatR Date: Wed, 22 Apr 2020 20:39:38 +0000 (-0700) Subject: option fixes and missing prototypes X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0ae84411a06345f6019278a88478360e258ad588;p=nethack option fixes and missing prototypes I added -Wmissing-prototypes to my CFLAGS and got a bunch of warnings. This fixes the core ones (there are more for X11 that I haven't looked at yet). While fixing these, I discovered a few option processing issues: the non-Amiga 'altmeta' should be settable while the game is in progress (not sure about the Amiga variation so left that as-is), 'altmeta' and 'menucolor' are booleans so shouldn't have had optfn_XXX functions; 'MACgraphics' and 'subkeyvalue' were conditionally defined differently in options.c than in optlist.h. --- diff --git a/include/extern.h b/include/extern.h index 0f98657c2..3c2364828 100644 --- a/include/extern.h +++ b/include/extern.h @@ -2749,8 +2749,10 @@ E void NDECL(port_help); #endif E void FDECL(sethanguphandler, (void (*)(int))); E boolean NDECL(authorize_wizard_mode); +E void FDECL(append_slash, (char *)); E boolean FDECL(check_user_string, (char *)); E char *NDECL(get_login_name); +E unsigned long NDECL(sys_random_seed); #endif /* UNIX */ /* ### unixtty.c ### */ diff --git a/include/optlist.h b/include/optlist.h index 0556739b6..e741351eb 100644 --- a/include/optlist.h +++ b/include/optlist.h @@ -69,7 +69,7 @@ pfx_##a, al, z, #a, Off, h, 0 }, #endif -/* B:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, boolptr */ +/* B:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, bool_p */ /* C:nm, ln, opt_*, setwhere?, negateok?, valok?, dupok?, hndlr? Alias, desc */ /* P:pfx, ln, opt_*, setwhere?, negateok?, valok?, dupok?, hndlr? Alias, desc*/ @@ -88,7 +88,7 @@ pfx_##a, &sysflags.altmeta) #else #ifdef ALTMETA - NHOPTB(altmeta, 0, opt_out, set_in_config, Off, No, No, No, NoAlias, + NHOPTB(altmeta, 0, opt_out, set_in_game, Off, No, No, No, NoAlias, &iflags.altmeta) #else NHOPTB(altmeta, 0, opt_out, set_in_config, Off, No, No, No, NoAlias, @@ -248,11 +248,9 @@ pfx_##a, &flags.lit_corridor) NHOPTB(lootabc, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias, &flags.lootabc) -#ifdef BACKWARD_COMPAT -#ifdef MAC_GRAPHICS_ENV +#if defined(BACKWARD_COMPAT) && defined(MAC_GRAPHICS_ENV) NHOPTC(Macgraphics, 70, opt_in, set_in_config, No, Yes, No, No, NoAlias, "load MACGraphics display symbols") -#endif #endif NHOPTB(mail, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias, &flags.biff) diff --git a/src/monst.c b/src/monst.c index f04bc3084..f964f412f 100644 --- a/src/monst.c +++ b/src/monst.c @@ -3236,6 +3236,8 @@ struct permonst _mons2[] = { #ifndef SPLITMON_1 +void NDECL(monst_globals_init); /* in hack.h but we're using config.h */ + struct permonst mons[SIZE(mons_init)]; void diff --git a/src/objects.c b/src/objects.c index b9215a7ba..bdef455e4 100644 --- a/src/objects.c +++ b/src/objects.c @@ -1170,6 +1170,8 @@ OBJECT(OBJ(None, None), /* clang-format on */ /* *INDENT-ON* */ +void NDECL(objects_globals_init); /* in hack.h but we're using config.h */ + struct objdescr obj_descr[SIZE(obj_descr_init)]; struct objclass objects[SIZE(obj_init)]; diff --git a/src/options.c b/src/options.c index a03ebe0e2..d76dc127f 100644 --- a/src/options.c +++ b/src/options.c @@ -672,40 +672,6 @@ char *op UNUSED; return optn_ok; } -int -optfn_altmeta(optidx, req, negated, opts, op) -int optidx UNUSED; -int req; -boolean negated UNUSED; -char *opts; -char *op UNUSED; -{ - if (req == do_init) { - return optn_ok; - } - if (req == do_set) { - /* Amiga altmeta causes Alt+key to be converted into Meta+key by - low level nethack code; on by default, can be toggled off if - Alt+key is needed for some ASCII chars on non-ASCII keyboard */ - - /* non-Amiga altmeta causes nethack's top level command loop to treat - two character sequence "ESC c" as M-c, for terminals or emulators - which send "ESC c" when Alt+c is pressed; off by default, enabling - this can potentially make trouble if user types ESC when nethack - is honoring this conversion request (primarily after starting a - count prefix prior to a command and then deciding to cancel it) */ - - return optn_ok; - } - if (req == get_val) { - if (!opts) - return optn_err; - opts[0] = '\0'; - return optn_err; - } - return optn_ok; -} - int optfn_boulder(optidx, req, negated, opts, op) int optidx UNUSED; @@ -1467,23 +1433,15 @@ char *op UNUSED; return optn_ok; } +#if defined(BACKWARD_COMPAT) && defined(MAC_GRAPHICS_ENV) int optfn_MACgraphics(optidx, req, negated, opts, op) -#if defined(MAC_GRAPHICS_ENV) && defined(BACKWARD_COMPAT) int optidx; int req; boolean negated; char *opts; char *op; -#else -int optidx UNUSED; -int req; -boolean negated UNUSED; -char *opts UNUSED; -char *op UNUSED; -#endif { -#if defined(MAC_GRAPHICS_ENV) && defined(BACKWARD_COMPAT) boolean badflag = FALSE; if (req == do_init) { @@ -1518,20 +1476,9 @@ char *op UNUSED; opts[0] = '\0'; return optn_ok; } -#else - if (req == do_set) { - config_error_add("'%s' %s; use 'symset:%s' instead", - allopt[optidx].name, -#ifdef MAC_GRAPHICS_ENV /* implies BACKWARD_COMPAT is not defined */ - "no longer supported", -#else - "is not supported", -#endif - allopt[optidx].name); - } -#endif return optn_ok; } +#endif /* BACKWARD_COMPAT && MAC_GRAPHICS_ENV */ int optfn_map_mode(optidx, req, negated, opts, op) @@ -1951,36 +1898,6 @@ char *op UNUSED; return optn_ok; } -int -optfn_menucolor(optidx, req, negated, opts, op) -int optidx; -int req; -boolean negated UNUSED; -char *opts; -char *op; -{ - if (req == do_init) { - return optn_ok; - } - if (req == do_set) { - /* menucolor:"regex_string"=color */ - if ((op = string_for_env_opt(allopt[optidx].name, opts, FALSE)) - != empty_optstr) { - if (!add_menu_coloring(op)) - return optn_err; - } else - return optn_err; - return optn_ok; - } - if (req == get_val) { - if (!opts) - return optn_err; - opts[0] = '\0'; - return optn_ok; - } - return optn_ok; -} - int optfn_menuinvertmode(optidx, req, negated, opts, op) int optidx; @@ -3468,6 +3385,7 @@ char *op; return optn_ok; } +#ifdef WIN32 int optfn_subkeyvalue(optidx, req, negated, opts, op) int optidx UNUSED; @@ -3480,12 +3398,10 @@ char *op UNUSED; return optn_ok; } if (req == do_set) { -#if defined(WIN32) if (op == empty_optstr) return optn_err; #ifdef TTY_GRAPHICS map_subkeyvalue(op); -#endif #endif return optn_ok; } @@ -3497,6 +3413,7 @@ char *op UNUSED; } return optn_ok; } +#endif /* WIN32 */ int optfn_suppress_alert(optidx, req, negated, opts, op) diff --git a/src/sp_lev.c b/src/sp_lev.c index 79fb5bbfb..9cda8a50f 100755 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -23,6 +23,7 @@ typedef void FDECL((*select_iter_func), (int, int, genericptr)); extern void FDECL(mkmap, (lev_init *)); +static boolean FDECL(match_maptyps, (XCHAR_P, XCHAR_P)); static void NDECL(solidify_map); static void FDECL(lvlfill_maze_grid, (int, int, int, int, SCHAR_P)); static void FDECL(lvlfill_solid, (SCHAR_P, SCHAR_P)); @@ -91,9 +92,11 @@ static void NDECL(spo_end_moninvent); static void NDECL(spo_pop_container); static int FDECL(l_create_stairway, (lua_State *, BOOLEAN_P)); static void FDECL(spo_endroom, (struct sp_coder *)); -static void FDECL(l_table_getset_feature_flag, (lua_State *, int, int, const char *, int)); +static void FDECL(l_table_getset_feature_flag, (lua_State *, int, int, + const char *, int)); static void FDECL(sel_set_lit, (int, int, genericptr_t)); -static void FDECL(selection_iterate, (struct selectionvar *, select_iter_func, genericptr_t)); +static void FDECL(selection_iterate, (struct selectionvar *, select_iter_func, + genericptr_t)); static void FDECL(sel_set_ter, (int, int, genericptr_t)); static void FDECL(sel_set_door, (int, int, genericptr_t)); static void FDECL(sel_set_feature, (int, int, genericptr_t)); @@ -105,6 +108,8 @@ static int FDECL(get_table_region, (lua_State *, const char *, static void FDECL(set_wallprop_in_selection, (lua_State *, int)); static int FDECL(floodfillchk_match_under, (int, int)); static int FDECL(floodfillchk_match_accessible, (int, int)); +static boolean FDECL(sel_flood_havepoint, (int, int, xchar *, xchar *, int)); +static long FDECL(line_dist_coord, (long, long, long, long, long, long)); static void FDECL(l_push_wid_hei_table, (lua_State *, int, int)); static int FDECL(get_table_align, (lua_State *)); static int FDECL(get_table_monclass, (lua_State *)); @@ -195,7 +200,7 @@ static struct monst *invent_carrying_monster = (struct monst *) 0; /* Does typ match with levl[][].typ, considering special types MATCH_WALL and MAX_TYPE (aka transparency)? */ -boolean +static boolean match_maptyps(typ, levltyp) xchar typ, levltyp; { @@ -4684,7 +4689,7 @@ int xc, yc, a, b, filled; } /* distance from line segment (x1,y1, x2,y2) to point (x3,y3) */ -long +static long line_dist_coord(x1, y1, x2, y2, x3, y3) long x1, y1, x2, y2, x3, y3; {