On 10/5/20 6:22 pm, Eli Schwartz wrote: > On 5/10/20 4:09 AM, Allan McRae wrote: >> On 10/5/20 2:32 pm, Eli Schwartz wrote: >>> This is not a warning, _parse_options() returns failure without even >>> parsing further lines and the attempted pacman/pacman-conf program >>> execution immediately aborts. Warnings are for when e.g. later on if we >>> don't recognize a setting at all, we skip over it and have enough >>> confidence in this to continue executing the program. >>> >>> The current implementation results in pacman-conf aborting with: >>> >>> warning: config file /etc/pacman.conf, line 60: invalid value for >>> 'ParallelDownloads' : '2.5' >>> error parsing '/etc/pacman.conf' >>> >>> or pacman -Syu aborting with the entirely more cryptic: >>> >>> warning: config file /etc/pacman.conf, line 59: invalid value for >>> 'ParallelDownloads' : '2.5' >>> >>> and this isn't just a problem for the newly added ParallelDownloads >>> setting, either, you could get the same problem if you specified a >>> broken XferCommand, but that's harder as it's more accepting of input >>> and you probably don't hit this except with unbalanced quotes. >>> >> >> Is this the fix we want? I think it would be better to get to the end >> of parsing the conf file spitting errors as we go so that all issues are >> printed before exiting. >> >> Allan > > Maybe? All I have done thus far is change the log level. To collect > multiple errors I guess we'd need to stop aborting in ini.c:parse_ini > the first time one callback returns an error. > > It's currently documented with: > > > @note Parsing will immediately stop if the callback returns non-zero. >
OK - I'll take your patch as is, and we may want to consider that later. We also may have issues continuing to parse after a failure. A