aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/builtincommandlineoption.cpp13
-rw-r--r--src/app/qmmpstarter.cpp10
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())