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:
@@ -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++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user