From b40812585475ca7795a115774345ed80947134fa Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Sat, 24 Apr 2010 09:41:34 +0000
Subject: Don't segfault on unknown command-line parameters.

Resolves: #327

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();
 }
-- 
cgit v0.10.2-6-g49f6