diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-11-28 20:16:02 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-11-28 20:16:02 +0000 |
| commit | a6c9576834e363228923633cbd54099d1f408650 (patch) | |
| tree | 694bbaa23820b17fc86f1b1058095bd288078b19 /src/plugins/General/trackchange | |
| parent | e0d060ae41c3b6cffa934566cb4a419d2d9186ee (diff) | |
| download | qmmp-a6c9576834e363228923633cbd54099d1f408650.tar.gz qmmp-a6c9576834e363228923633cbd54099d1f408650.tar.bz2 qmmp-a6c9576834e363228923633cbd54099d1f408650.zip | |
track change: escape single and double quotes (#992)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9114 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/trackchange')
| -rw-r--r-- | src/plugins/General/trackchange/trackchange.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/General/trackchange/trackchange.cpp b/src/plugins/General/trackchange/trackchange.cpp index 259a4d474..3a95a62ff 100644 --- a/src/plugins/General/trackchange/trackchange.cpp +++ b/src/plugins/General/trackchange/trackchange.cpp @@ -27,6 +27,7 @@ #include <QDir> #include <QProcess> #include <QMap> +#include <QtDebug> #include <qmmp/soundcore.h> #include <qmmpui/uihelper.h> #include <qmmpui/playlistmodel.h> @@ -105,12 +106,23 @@ void TrackChange::onFinised() bool TrackChange::executeCommand(const TrackInfo &info, const QString &format) { + TrackInfo tmp = info; + QMap<Qmmp::MetaData, QString> metaData = tmp.metaData(); + QMap<Qmmp::MetaData, QString>::iterator it = metaData.begin(); + while(it != metaData.end()) + { + it.value() = it.value().replace("u", "'\\''"); + it.value() = it.value().replace("O", "\""); + it++; + } + tmp.setValues(metaData); MetaDataFormatter formatter(format); - QString command = formatter.format(info); + QString command = formatter.format(tmp); #ifdef Q_OS_WIN bool ok = QProcess::startDetached(QString("cmd.exe \"%1\"").arg(command)); #else - bool ok = QProcess::startDetached(QString("sh -c \"%1\"").arg(command)); + QStringList args = { "-c", command }; + bool ok = QProcess::startDetached("sh", args); #endif if(!ok) qWarning("TrackChange: unable to start command '%s'", qPrintable(command)); |
