From e1d14b695134ec18777df5b35ba4f69aed898908 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Thu, 19 Apr 2012 09:48:39 +0200 Subject: [PATCH] Fixed unregistered-options parsing --- spectrum/src/main.cpp | 2 +- src/config.cpp | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/spectrum/src/main.cpp b/spectrum/src/main.cpp index ea3b288e..ab5bc790 100644 --- a/spectrum/src/main.cpp +++ b/spectrum/src/main.cpp @@ -147,7 +147,7 @@ int main(int argc, char **argv) boost::program_options::positional_options_description p; p.add("config", -1); boost::program_options::store(boost::program_options::command_line_parser(argc, argv). - options(desc).positional(p).run(), vm); + options(desc).positional(p).allow_unregistered().run(), vm); boost::program_options::notify(vm); if (vm.count("version")) { diff --git a/src/config.cpp b/src/config.cpp index 2505614e..08f7451d 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -122,6 +122,13 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description ("backend.no_vcard_fetch", value()->default_value(false), "True if VCards for buddies should not be fetched. Only avatars will be forwarded.") ; + // Load configs passed by command line + if (m_argc != 0 && m_argv) { + basic_command_line_parser parser = command_line_parser(m_argc, m_argv).options(opts).allow_unregistered(); + parsed_options parsed = parser.run(); + store(parsed, m_variables); + } + parsed_options parsed = parse_config_file(ifs, opts, true); bool found_working = false; @@ -187,11 +194,6 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description } } - // Load configs passed by command line - if (m_argc != 0 && m_argv) { - store(parse_command_line(m_argc, m_argv, opts), m_variables); - } - store(parsed, m_variables); notify(m_variables);