fix 'nethack --scores'

The command line parsing in unixmain.c accepted --scores as an
alternative to -s but prscore() in topten.c didn't.
This commit is contained in:
PatR
2022-11-16 23:41:07 -08:00
parent 76a94db88c
commit a96b3d0b03
2 changed files with 8 additions and 3 deletions

View File

@@ -1420,6 +1420,7 @@ if hero's steed got hit by knockback effect, impossible "no monster to remove"
would occur (plus more warnings if 'sanity_check' was On) would occur (plus more warnings if 'sanity_check' was On)
the #saveoptions command included options changed via doset_simple() but not the #saveoptions command included options changed via doset_simple() but not
ones changed via full doset() ones changed via full doset()
fix 'nethack --scores' as alias for 'nethack -s'
curses: 'msg_window' option wasn't functional for curses unless the binary curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support also included tty support

View File

@@ -1146,10 +1146,13 @@ prscore(int argc, char **argv)
boolean match_found = FALSE; boolean match_found = FALSE;
register int i; register int i;
char pbuf[BUFSZ]; char pbuf[BUFSZ];
unsigned ln = 0;
int uid = -1; int uid = -1;
const char *player0; const char *player0;
if (argc < 2 || strncmp(argv[1], "-s", 2)) { if (argc < 2 || (ln = Strlen(argv[1])) < 2
|| (strncmp(argv[1], "-s", 2)
&& (ln < 4 || strncmp(argv[1], "--scores", ln)))) {
raw_printf("prscore: bad arguments (%d)", argc); raw_printf("prscore: bad arguments (%d)", argc);
return; return;
} }
@@ -1177,11 +1180,12 @@ prscore(int argc, char **argv)
init_done = TRUE; init_done = TRUE;
} }
if (!argv[1][2]) { /* plain "-s" */ /* 'ln' is 2 for -s, longer for --scores */
if (!argv[1][ln]) { /* plain "-s" */
argc--; argc--;
argv++; argv++;
} else } else
argv[1] += 2; argv[1] += ln;
if (argc > 1 && !strcmp(argv[1], "-v")) { if (argc > 1 && !strcmp(argv[1], "-v")) {
current_ver = FALSE; current_ver = FALSE;