'O' couldn't change 'symset'

The revised options processing from however long ago broke using
'O' to change 'symset'.  ('roguesymset' worked ok.)  Picking it
in the main 'O' menu behaved as it nothing had been picked.  The
symset-specific submenu wasn't offered to the player because a
two-line block of code was omitted.

It seems amazing that no one has noticed in all this time.
This commit is contained in:
PatR
2020-08-13 15:24:24 -07:00
parent 3e9eb0d784
commit aaf1d4d381
2 changed files with 8 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 options.c $NHDT-Date: 1596494520 2020/08/03 22:42:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.469 $ */
/* NetHack 3.7 options.c $NHDT-Date: 1597357458 2020/08/13 22:24:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.470 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -359,14 +359,12 @@ boolean tinitial, tfrom_file;
got_match = TRUE;
}
}
#if 0
#if 0 /* this prevents "boolopt:True" &c */
if (!got_match) {
if (has_val && !allopt[i].valok)
continue;
}
#endif
/*
* During option initialization, the function
* determine_ambiguities()
@@ -692,8 +690,7 @@ char *op UNUSED;
#ifdef BACKWARD_COMPAT
/* if ((opts = string_for_env_opt(allopt[optidx].name, opts, FALSE))
==
empty_optstr)
== empty_optstr)
*/
if ((opts = string_for_opt(opts, FALSE)) == empty_optstr)
return FALSE;
@@ -3493,6 +3490,9 @@ char *op;
Strcat(opts, ", active");
return optn_ok;
}
if (req == do_handler) {
return handler_symset(optidx);
}
return optn_ok;
}