summaryrefslogtreecommitdiff
path: root/src/option_processing.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-26 16:05:45 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-26 16:05:45 +0000
commit54bb6300773c2639c4e38c719c3b82fa7cf182fe (patch)
treea110ca6dcc9af865670973fe83ed115a9c25454b /src/option_processing.cc
parent87a5bb50c2bb9d1232e9160def0f85d5f05e7813 (diff)
2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
When error occurs while aria2 is parsing an command-line option, print the usage of the option. * src/Makefile.am * src/NameMatchOptionHandler.h * src/OptionHandlerException.h * src/option_processing.cc
Diffstat (limited to 'src/option_processing.cc')
-rw-r--r--src/option_processing.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/option_processing.cc b/src/option_processing.cc
index 50c4bf5a..54beb9a2 100644
--- a/src/option_processing.cc
+++ b/src/option_processing.cc
@@ -45,6 +45,7 @@
#include "help_tags.h"
#include "File.h"
#include "StringFormat.h"
+#include "OptionHandlerException.h"
#include <cstdlib>
#include <cstring>
#include <fstream>
@@ -518,6 +519,12 @@ Option* option_processing(int argc, char* const argv[])
}
try {
oparser.parse(op, cmdstream);
+ } catch(OptionHandlerException& e) {
+ std::cerr << e.stackTrace() << "\n"
+ << "Usage:\n"
+ << oparser.findByName(e.getOptionName())->getDescription()
+ << std::endl;
+ exit(EXIT_FAILURE);
} catch(Exception& e) {
std::cerr << e.stackTrace() << std::endl;
showUsage(TAG_HELP, oparser);