diff --git a/NEWS b/NEWS index e7c38ca97..7cd878032 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.21.19 (not yet released) +* configuration + - allow overriding top-level settings in includes * output - pulse: obey Pulse's maximum sample rate (fixes DSD128 playback) * fix build failure with clang 10 diff --git a/src/config/File.cxx b/src/config/File.cxx index b0361bc6b..269ea8419 100644 --- a/src/config/File.cxx +++ b/src/config/File.cxx @@ -153,11 +153,9 @@ ReadConfigParam(ConfigData &config_data, BufferedReader &reader, name, reader.GetLineNumber()); if (!option.repeatable) - if (const auto *param = config_data.GetParam(o)) - throw FormatRuntimeError("config parameter \"%s\" is first defined " - "on line %d and redefined on line %u\n", - name, param->line, - reader.GetLineNumber()); + /* if the option is not repeatable, override the old + value by removing it first */ + config_data.GetParamList(o).clear(); /* now parse the block or the value */