From da816247f0c00e1644f7ebe2b848cfd6a5c7026e Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Thu, 3 Jun 2021 12:14:33 +0200 Subject: util: Properly handle -noincludeconf on command line This bug was introduced in commit fad0867d6ab9430070aa7d60bf7617a6508e0586. Unit test Co-Authored-By: Russell Yanofsky Github-Pull: #22137 Rebased-From: fa910b47656d0e69cccb1f31804f2b11aa45d053 --- src/util/system.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/util') diff --git a/src/util/system.cpp b/src/util/system.cpp index a21d58a19d..0d8b669b79 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -336,11 +336,14 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin m_settings.command_line_options[key].push_back(value); } - // we do not allow -includeconf from command line + // we do not allow -includeconf from command line, only -noincludeconf if (auto* includes = util::FindKey(m_settings.command_line_options, "includeconf")) { - const auto& include{*util::SettingsSpan(*includes).begin()}; // pick first value as example - error = "-includeconf cannot be used from commandline; -includeconf=" + include.write(); - return false; + const util::SettingsSpan values{*includes}; + // Range may be empty if -noincludeconf was passed + if (!values.empty()) { + error = "-includeconf cannot be used from commandline; -includeconf=" + values.begin()->write(); + return false; // pick first value as example + } } return true; } -- cgit v1.2.3