diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-10-13 23:33:26 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-10-13 23:33:26 +0200 |
| commit | 1158e57f400de8f0e9ec0b8b21bfcf0d5dfc830f (patch) | |
| tree | 925e2f9b22fcbc8c2fde350a972a3f30976add81 /src/Util.cpp | |
| parent | 9ffa2f549f1531e19ca7687f74ce5a5bef8c183d (diff) | |
| download | manager-1158e57f400de8f0e9ec0b8b21bfcf0d5dfc830f.tar.gz manager-1158e57f400de8f0e9ec0b8b21bfcf0d5dfc830f.zip | |
Correctly read octal escapes from Clonk-config
Diffstat (limited to 'src/Util.cpp')
| -rw-r--r-- | src/Util.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Util.cpp b/src/Util.cpp index 014f1f8..0a0b6a5 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -1,5 +1,7 @@ #include "Util.hpp" +#include <QRegularExpression> + namespace Util { QString trimQuotes(QString string, bool& trimmed) { @@ -132,4 +134,16 @@ namespace Util { return ret; } + QString& unescapeClonkString(QString&& string) + { + static QRegularExpression escapeExp(R"(\\[0-7]+)"); + QRegularExpressionMatch match; + while((match = escapeExp.match(string)).hasMatch()) + { + unsigned char c = (unsigned char)match.capturedRef(0).mid(1).toInt(0, 8); + + string.replace(match.capturedStart(), match.capturedLength(), c); + } + return string; + } } |
