fix RC file CHOOSE '[section] #comment'

Two years ago I modified the parsing for [section] labels for the
config file's CHOOSE directive to allow end-of-line comments, but
the code used had a logic error (don't think I can blame it on
copy+paste).  It looked for '#' after ']' but allowed anything--
rather than just spaces--in between.

"[section-name]abc#comment" would become "section-name" as if the
trailing junk hadn't been present.  Parsing that should produce
"section-name]abc" and get rejected as invalid.
This commit is contained in:
PatR
2022-10-28 23:26:39 -07:00
parent 8034a0d60e
commit ad74d9e407

View File

@@ -2317,8 +2317,8 @@ free_config_sections(void)
with spaces optional; returns pointer to "anything-except..." (with
trailing " ] #..." stripped) if ok, otherwise Null */
static char *
is_config_section(char *str) /* trailing spaces will be stripped,
']' too iff result is good */
is_config_section(
char *str) /* trailing spaces are stripped, ']' too iff result is good */
{
char *a, *c, *z;
@@ -2332,7 +2332,8 @@ is_config_section(char *str) /* trailing spaces will be stripped,
z = index(a, ']');
if (!z)
return (char *) 0;
for (c = z + 1; *c && *c != '#'; ++c)
/* comment, if present, can be preceded by spaces */
for (c = z + 1; *c == ' '; ++c)
continue;
if (*c && *c != '#')
return (char *) 0;