Reimplement fixes to handle commas at the end of config parser lines

This commit is contained in:
Tim Wojtulewicz 2023-04-12 16:08:26 -07:00
parent 777dff18cd
commit 187773eaa3
3 changed files with 8 additions and 3 deletions

View file

@ -181,9 +181,12 @@ bool Config::DoUpdate()
unseen_options.insert(i.first);
}
std::string re_str = Fmt(
"^([^[:blank:]]+)[[:blank:]]+([^[:blank:]](.*[^[:blank:]%c])?)?[[:blank:]%c]*$",
set_separator[0], set_separator[0]);
regex_t re;
if ( regcomp(&re, "^([^[:blank:]]+)[[:blank:]]+([^[:blank:]](.*[^[:blank:]])?)?[[:blank:]]*$",
REG_EXTENDED) )
if ( regcomp(&re, re_str.c_str(), REG_EXTENDED) )
{
Error(Fmt("Failed to compile regex."));
return true;

View file

@ -23,7 +23,8 @@ XXXXXXXXXX.XXXXXX testsub 2607:f8b0:4001::/48 2607:f8b0:4002::/48 ../configfile
XXXXXXXXXX.XXXXXX testinterval 1.0 sec 1.0 min ../configfile
XXXXXXXXXX.XXXXXX testtime 0.0 XXXXXXXXXX.XXXXXX ../configfile
XXXXXXXXXX.XXXXXX test_set (empty) a,d,b,c,erdbeerschnitzel ../configfile
XXXXXXXXXX.XXXXXX test_set a,d,b,c,erdbeerschnitzel a,c,b ../configfile
XXXXXXXXXX.XXXXXX test_vector (empty) 1,2,3,4,5,6 ../configfile
XXXXXXXXXX.XXXXXX test_set a,d,b,c,erdbeerschnitzel (empty) ../configfile
XXXXXXXXXX.XXXXXX test_set a,c,b (empty) ../configfile
XXXXXXXXXX.XXXXXX test_set (empty) \x2d ../configfile
#close XXXX-XX-XX-XX-XX-XX

View file

@ -27,6 +27,7 @@ testsub [2607:f8b0:4002:801::]/48
testinterval 60
testtime 1507321987
test_set a,b,c,d,erdbeerschnitzel
test_set a,b,c,
test_vector 1,2,3,4,5,6
test_set
test_set -