Merge pull request #3138 from PrismLauncher/backport-3130-to-release-9.x

[Backport release-9.x] Improve MANIFEST.MF parsing
This commit is contained in:
Alexandru Ionut Tripon 2024-11-25 12:09:01 +02:00 committed by GitHub
commit e0c323a190
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,6 +8,7 @@
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonValue>
#include <QRegularExpression>
#include <QString>
#include "FileSystem.h"
@ -15,6 +16,8 @@
#include "minecraft/mod/ModDetails.h"
#include "settings/INIFile.h"
static QRegularExpression newlineRegex("\r\n|\n|\r");
namespace ModUtils {
// NEW format
@ -487,11 +490,11 @@ bool processZIP(Mod& mod, [[maybe_unused]] ProcessingLevel level)
}
// quick and dirty line-by-line parser
auto manifestLines = file.readAll().split('\n');
auto manifestLines = QString(file.readAll()).split(newlineRegex);
QString manifestVersion = "";
for (auto& line : manifestLines) {
if (QString(line).startsWith("Implementation-Version: ")) {
manifestVersion = QString(line).remove("Implementation-Version: ");
if (line.startsWith("Implementation-Version: ", Qt::CaseInsensitive)) {
manifestVersion = line.remove("Implementation-Version: ", Qt::CaseInsensitive);
break;
}
}