summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-04-24 09:41:34 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-04-24 09:41:34 (GMT)
commitb40812585475ca7795a115774345ed80947134fa (patch)
treea91b9682a845b2eb05ecd9ee0c4018c64888dfb3
parent26c9854be9df706c550c0eec7e64708b5bf5cd81 (diff)
downloadswift-contrib-b40812585475ca7795a115774345ed80947134fa.zip
swift-contrib-b40812585475ca7795a115774345ed80947134fa.tar.bz2
Don't segfault on unknown command-line parameters.
Resolves: #327
-rw-r--r--Swift/QtUI/main.cpp15
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();
}