fix github issue #238 - 'scores' option

Fixes #238

For the three fields in the 'scores' option's argument: top, around,
and own, if any was separated from preceding one by space(s) rather
than slash and lacked a count prefix, the argument parsing skipped
over it.  So "10t/3a/o" and "10t 3a 1o" worked but "10t 3a o" ignored
the 'o'.  The issue report was about 'own' but there's nothing special
about 'own' itself; just that it doesn't warrant a count prefix and is
usually last (in other words, normally preceded by one or both of the
other two) so more likely to trip over this.

[I thought there was another report about 'scores' misbehaving (from
quite a while ago) but couldn't find one.  If it exists, it might have
been about the same thing.]
This commit is contained in:
PatR
2019-10-25 23:11:06 -07:00
parent b7ca0b4cc6
commit 757eca7fd9
2 changed files with 11 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 options.c $NHDT-Date: 1571448220 2019/10/19 01:23:40 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.380 $ */
/* NetHack 3.6 options.c $NHDT-Date: 1572070255 2019/10/26 06:10:55 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.381 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -3262,8 +3262,12 @@ boolean tinitial, tfrom_file;
config_error_add("Unknown %s parameter '%s'", fullname, op);
return FALSE;
}
while (letter(*++op) || *op == ' ')
continue;
/* "3a" is sufficient but accept "3around" (or "3abracadabra") */
while (letter(*op))
op++;
/* t, a, and o can be separated by space(s) or slash or both */
while (*op == ' ')
op++;
if (*op == '/')
op++;
}