diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2022-07-10 19:21:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-10 19:21:01 +0200 |
commit | cd948dceaed4625e7a876f680d3dc028e6cfe6de (patch) | |
tree | 9a1da832444744f126477e6925dcd78172989bed /launcher/minecraft/MinecraftInstance.cpp | |
parent | c1bcbf8c63ef4543fdf0d5529089721d2b4a01dd (diff) | |
parent | eb33a87ff5ba01d05f6a96d4d06a0d00fdd85647 (diff) | |
download | PrismLauncher-cd948dceaed4625e7a876f680d3dc028e6cfe6de.tar.gz PrismLauncher-cd948dceaed4625e7a876f680d3dc028e6cfe6de.tar.bz2 PrismLauncher-cd948dceaed4625e7a876f680d3dc028e6cfe6de.zip |
Merge pull request #575 from Scrumplex/qt6
Diffstat (limited to 'launcher/minecraft/MinecraftInstance.cpp')
-rw-r--r-- | launcher/minecraft/MinecraftInstance.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/launcher/minecraft/MinecraftInstance.cpp b/launcher/minecraft/MinecraftInstance.cpp index 889c6dde..abc022b6 100644 --- a/launcher/minecraft/MinecraftInstance.cpp +++ b/launcher/minecraft/MinecraftInstance.cpp @@ -473,25 +473,25 @@ QProcessEnvironment MinecraftInstance::createLaunchEnvironment() static QString replaceTokensIn(QString text, QMap<QString, QString> with) { + // TODO: does this still work?? QString result; - QRegExp token_regexp("\\$\\{(.+)\\}"); - token_regexp.setMinimal(true); + QRegularExpression token_regexp("\\$\\{(.+)\\}", QRegularExpression::InvertedGreedinessOption); QStringList list; - int tail = 0; - int head = 0; - while ((head = token_regexp.indexIn(text, head)) != -1) + QRegularExpressionMatchIterator i = token_regexp.globalMatch(text); + int lastCapturedEnd = 0; + while (i.hasNext()) { - result.append(text.mid(tail, head - tail)); - QString key = token_regexp.cap(1); + QRegularExpressionMatch match = i.next(); + result.append(text.mid(lastCapturedEnd, match.capturedStart())); + QString key = match.captured(1); auto iter = with.find(key); if (iter != with.end()) { result.append(*iter); } - head += token_regexp.matchedLength(); - tail = head; + lastCapturedEnd = match.capturedEnd(); } - result.append(text.mid(tail)); + result.append(text.mid(lastCapturedEnd)); return result; } @@ -540,7 +540,11 @@ QStringList MinecraftInstance::processMinecraftArgs( token_mapping["assets_root"] = absAssetsDir; token_mapping["assets_index_name"] = assets->id; +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + QStringList parts = args_pattern.split(' ', Qt::SkipEmptyParts); +#else QStringList parts = args_pattern.split(' ', QString::SkipEmptyParts); +#endif for (int i = 0; i < parts.length(); i++) { parts[i] = replaceTokensIn(parts[i], token_mapping); |