diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2016-10-04 22:39:43 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2016-10-04 22:39:43 +0200 |
| commit | 4d70cb1f3d6b05b8a2fb58137988c2820e9590d2 (patch) | |
| tree | 738074a473bea498d63ee54128430df99f96128e /src/ProcessManager.cpp | |
| parent | 6cc8a285eebd0b8e082372fd7e8d127d92b9dedc (diff) | |
| download | manager-4d70cb1f3d6b05b8a2fb58137988c2820e9590d2.tar.gz manager-4d70cb1f3d6b05b8a2fb58137988c2820e9590d2.zip | |
"Fix" encoding of Clonk's arguments in CP1252 (to support Scenario names
with umlauts coming from windows)
Diffstat (limited to 'src/ProcessManager.cpp')
| -rw-r--r-- | src/ProcessManager.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ProcessManager.cpp b/src/ProcessManager.cpp index 5a9e89f..dc2aa10 100644 --- a/src/ProcessManager.cpp +++ b/src/ProcessManager.cpp @@ -4,9 +4,19 @@ #include <QProcess> #include <QThread> #include <QDebug> +#include <QTextCodec> -ProcessManager::ProcessManager(const QString &newPrefix, const QString &newId, bool useStdErr, QObject *parent) : QObject(parent), prefix(newPrefix), id(newId), useStdErr(useStdErr) +ProcessManager::ProcessManager(const QString &newPrefix, const QString &newId, bool useStdErr, QTextCodec* argumentsCodec, QObject *parent) : QObject(parent), prefix(newPrefix), id(newId), useStdErr(useStdErr) { + if(argumentsCodec == nullptr) + { + this->argumentsCodec = QTextCodec::codecForName("UTF-8"); + } + else + { + this->argumentsCodec = argumentsCodec; + } + if(id.isEmpty()) { id = QString::number(qrand()) + "-"; @@ -108,7 +118,7 @@ bool ProcessManager::start(const QString &program, QStringList args) { args[i] = args[i].replace('\\', "\\\\").replace(' ', "\\ "); } - ctrlIn.write("START " + program.toUtf8() + " " + args.join(' ').toUtf8() + "\n"); + ctrlIn.write("START " + program.toUtf8() + " " + argumentsCodec->fromUnicode(args.join(' ')) + "\n"); QRegExp runningExp("^RUNNING: (\\d+)\n$"); if(!runningExp.exactMatch(ctrlOut.readLine())) { |
