The old code used a regex that would split on exactly one space, so if
the data was changed to have more than one then it would get absorbed
into the name that was parsed out of the header file, leading the code
to test for things like "FOO ", which of course don't exist. Likely this
could have caused other issues too, but the defines in practice are
single symbols.
chomp;
next unless / - \d+ $ /x;
s/ ^ \# \s* define \s*//x;
chomp;
next unless / - \d+ $ /x;
s/ ^ \# \s* define \s*//x;
$items{$1} = ($has_nl_langinfo)
? $1 # Yields 'YESSTR'
: $2; # Yields -54
$items{$1} = ($has_nl_langinfo)
? $1 # Yields 'YESSTR'
: $2; # Yields -54