diff options
| -rw-r--r-- | src/app/builtincommandlineoption.cpp | 13 | ||||
| -rw-r--r-- | src/app/qmmpstarter.cpp | 10 |
2 files changed, 14 insertions, 9 deletions
diff --git a/src/app/builtincommandlineoption.cpp b/src/app/builtincommandlineoption.cpp index da8cc8680..5bb4da76a 100644 --- a/src/app/builtincommandlineoption.cpp +++ b/src/app/builtincommandlineoption.cpp @@ -224,12 +224,17 @@ void BuiltinCommandLineOption::executeCommand(const QString &option_string, QHash <QString, QStringList> BuiltinCommandLineOption::splitArgs(const QStringList &args) const { QHash <QString, QStringList> commands; + QString lastCmd; foreach(QString arg, args) { - if(arg.startsWith("-") || arg.startsWith("--")) - commands.insert(arg, QStringList()); - else if(!commands.isEmpty()) - commands[commands.keys().last()] << arg; + QString cmd = arg.trimmed(); + if(cmd.startsWith("-") || cmd.startsWith("--")) + { + commands.insert(cmd, QStringList()); + lastCmd = cmd; + } + else if(!commands.isEmpty() && !lastCmd.isEmpty()) + commands[lastCmd] << arg; } return commands; } diff --git a/src/app/qmmpstarter.cpp b/src/app/qmmpstarter.cpp index 0b9a51b8d..048d22ebd 100644 --- a/src/app/qmmpstarter.cpp +++ b/src/app/qmmpstarter.cpp @@ -64,9 +64,9 @@ 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]).trimmed(); + tmp << QString::fromLocal8Bit(argv[i]); - argString = tmp.join("\n"); + argString = tmp.join("|||"); QHash <QString, QStringList> commands = m_option_manager->splitArgs(tmp); if(commands.keys().contains("--help")) @@ -165,7 +165,7 @@ QMMPStarter::~QMMPStarter() void QMMPStarter::startPlayer() { connect(m_server, SIGNAL(newConnection()), SLOT(readCommand())); - QStringList args = argString.split("\n", QString::SkipEmptyParts); + QStringList args = argString.split("|||", QString::SkipEmptyParts); #ifdef Q_OS_WIN QIcon::setThemeSearchPaths(QStringList() << qApp->applicationDirPath() + "/themes/"); @@ -228,7 +228,7 @@ void QMMPStarter::savePosition() void QMMPStarter::writeCommand() { - QString workingDir = QDir::currentPath() + "\n"; + QString workingDir = QDir::currentPath() + "|||"; QByteArray barray; barray.append(workingDir.toUtf8 ()); barray.append(argString.isEmpty() ? "--show-mw" : argString.toUtf8 ()); @@ -260,7 +260,7 @@ void QMMPStarter::readCommand() socket->deleteLater(); return; } - QStringList slist = QString::fromUtf8(inputArray.data()).split("\n",QString::SkipEmptyParts); + QStringList slist = QString::fromUtf8(inputArray.data()).split("|||",QString::SkipEmptyParts); QString cwd = slist.takeAt(0); QString out = processCommandArgs(slist, cwd); if(!out.isEmpty()) |
