diff options
Diffstat (limited to 'src/ui/qmmpstarter.cpp')
| -rw-r--r-- | src/ui/qmmpstarter.cpp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/ui/qmmpstarter.cpp b/src/ui/qmmpstarter.cpp index d0c126ba4..8735a66f2 100644 --- a/src/ui/qmmpstarter.cpp +++ b/src/ui/qmmpstarter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2009 by Ilya Kotov * + * Copyright (C) 2006-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -44,30 +44,37 @@ QMMPStarter::QMMPStarter(int argc,char **argv, QObject* parent) : QObject(parent m_option_manager = new BuiltinCommandLineOption(this); QStringList tmp; for (int i = 1;i < argc;i++) - tmp << QString::fromLocal8Bit(argv[i]); + tmp << QString::fromLocal8Bit(argv[i]).trimmed(); argString = tmp.join("\n"); + QHash <QString, QStringList> commands = m_option_manager->splitArgs(tmp); - if (argString == "--help") + if(commands.keys().contains("--help")) { printUsage(); exit(0); } - else if (argString == "--version") + if(commands.keys().contains("--version")) { printVersion(); exit(0); } - if (argString.startsWith("-") && // command? - !(m_option_manager->identify(argString) || - CommandLineManager::hasOption(argString) || - argString.startsWith("--enqueue") || - argString.startsWith("-e"))) + if(!commands.isEmpty()) { - qFatal("QMMP: Unknown command..."); - exit(1); + foreach(QString arg, commands.keys()) + { + if(!m_option_manager->identify(arg) && + !CommandLineManager::hasOption(arg) && + arg != "--enqueue" && + arg != "-e") + { + cout << qPrintable(tr("Unknown command")) << endl; + exit(0); + } + } } + #ifndef Q_OS_WIN32 m_sock = new UnixDomainSocket(this); if (m_sock->bind(UDS_PATH)) @@ -97,7 +104,8 @@ QMMPStarter::QMMPStarter(int argc,char **argv, QObject* parent) : QObject(parent QMMPStarter::~ QMMPStarter() { - if (mw) delete mw; + if (mw) + delete mw; } void QMMPStarter::startMainWindow() |
