From ca2dc325f54ffa38990e6335c0f7d4eb99401e00 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 27 Dec 2014 20:07:31 +0200 Subject: [PATCH] Detect uknown command line parameters. --- src/main.cpp | 50 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 840e93e3b..5ff630b9c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -114,6 +114,7 @@ struct QBtCommandLineParameters #endif int webUiPort; QStringList torrents; + QString uknownParameter; QBtCommandLineParameters() : showHelp(false) @@ -154,6 +155,12 @@ int main(int argc, char *argv[]) const QBtCommandLineParameters params = parseCommandLine(); + if (!params.uknownParameter.isEmpty()) { + displayBadArgMessage(QObject::tr("%1 is an uknown command line parameter.", "--random-parameter is an uknown command line parameter.") + .arg(params.uknownParameter)); + return EXIT_FAILURE; + } + #ifndef Q_OS_WIN if (params.showVersion) { if (isOneArg) { @@ -292,28 +299,37 @@ QBtCommandLineParameters parseCommandLine() for (int i = 1; i < appArguments.size(); ++i) { const QString& arg = appArguments[i]; - if ((arg == QLatin1String("-h")) || (arg == QLatin1String("--help"))) { - result.showHelp = true; - } + if ((arg.startsWith("--") && !arg.endsWith(".torrent")) || + (arg.startsWith("-") && arg.size() == 2)) { + //Parse known parameters + if ((arg == QLatin1String("-h")) || (arg == QLatin1String("--help"))) { + result.showHelp = true; + } #ifndef Q_OS_WIN - else if ((arg == QLatin1String("-v")) || (arg == QLatin1String("--version"))) { - result.showVersion = true; - } + else if ((arg == QLatin1String("-v")) || (arg == QLatin1String("--version"))) { + result.showVersion = true; + } #endif - else if (arg.startsWith(QLatin1String("--webui-port="))) { - QStringList parts = arg.split(QLatin1Char('=')); - if (parts.size() == 2) - result.webUiPort = parts.last().toInt(); - } + else if (arg.startsWith(QLatin1String("--webui-port="))) { + QStringList parts = arg.split(QLatin1Char('=')); + if (parts.size() == 2) + result.webUiPort = parts.last().toInt(); + } #ifndef DISABLE_GUI - else if (arg == QLatin1String("--no-splash")) { - result.noSplash = true; - } + else if (arg == QLatin1String("--no-splash")) { + result.noSplash = true; + } #else - else if ((arg == QLatin1String("-d")) || (arg == QLatin1String("--daemon"))) { - result.shouldDaemonize = true; - } + else if ((arg == QLatin1String("-d")) || (arg == QLatin1String("--daemon"))) { + result.shouldDaemonize = true; + } #endif + else { + //Uknown argument + result.uknownParameter = arg; + break; + } + } else { QFileInfo torrentPath; torrentPath.setFile(arg);