diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-04-24 09:41:34 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-04-24 09:41:34 (GMT) |
commit | b40812585475ca7795a115774345ed80947134fa (patch) | |
tree | a91b9682a845b2eb05ecd9ee0c4018c64888dfb3 | |
parent | 26c9854be9df706c550c0eec7e64708b5bf5cd81 (diff) | |
download | swift-contrib-b40812585475ca7795a115774345ed80947134fa.zip swift-contrib-b40812585475ca7795a115774345ed80947134fa.tar.bz2 |
Don't segfault on unknown command-line parameters.
Resolves: #327
-rw-r--r-- | Swift/QtUI/main.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp index f8b805c..bd91fd4 100644 --- a/Swift/QtUI/main.cpp +++ b/Swift/QtUI/main.cpp @@ -8,17 +8,26 @@ #include <boost/program_options/variables_map.hpp> #include <boost/program_options.hpp> +#include <iostream> #include <QApplication> #include "QtSwift.h" int main(int argc, char* argv[]) { - QApplication app(argc, argv); boost::program_options::options_description desc = Swift::QtSwift::getOptionsDescription(); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); + boost::program_options::variables_map vm; + try { + boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); + } catch (boost::program_options::unknown_option option) { + std::cout << "Ignoring unknown option " << option.get_option_name() << " but continuing." << std::endl; + } boost::program_options::notify(vm); + if (vm.count("help") > 0) { + std::cout << desc << "\n"; + return 1; + } + QApplication app(argc, argv); Swift::QtSwift swift(vm); return app.exec(); } |