From 85c21855ef27788f93f8c15bf1eca8bbac01ab12 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 12 Feb 2020 16:38:07 -0600 Subject: [PATCH] Update C array regex to allow explicitly-sized arrays --- src/core/parseutil.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/parseutil.cpp b/src/core/parseutil.cpp index 0182f9b0..dd803878 100644 --- a/src/core/parseutil.cpp +++ b/src/core/parseutil.cpp @@ -314,11 +314,11 @@ QStringList ParseUtil::readCArray(QString filename, QString label) { file = filename; text = readTextFile(root + "/" + filename); - QRegularExpression re(QString("\\b%1\\b\\s*\\[?\\s*\\]?\\s*=\\s*\\{([^\\}]*)\\}").arg(label)); + QRegularExpression re(QString(R"(\b%1\b\s*(\[?[^\]]*\])?\s*=\s*\{([^\}]*)\})").arg(label)); QRegularExpressionMatch match = re.match(text); if (match.hasMatch()) { - QString body = match.captured(1); + QString body = match.captured(2); QStringList split = body.split(','); for (QString item : split) { item = item.trimmed(); @@ -334,8 +334,8 @@ QMap ParseUtil::readNamedIndexCArray(QString filename, QString text = readTextFile(root + "/" + filename); QMap map; - QRegularExpression re_text(QString("\\b%1\\b\\s*\\[?\\s*\\]?\\s*=\\s*\\{([^\\}]*)\\}").arg(label)); - QString body = re_text.match(text).captured(1).replace(QRegularExpression("\\s*"), ""); + QRegularExpression re_text(QString(R"(\b%1\b\s*(\[?[^\]]*\])?\s*=\s*\{([^\}]*)\})").arg(label)); + QString body = re_text.match(text).captured(2).replace(QRegularExpression("\\s*"), ""); QRegularExpression re("\\[(?[A-Za-z1-9_]*)\\]=(?&?[A-Za-z1-9_]*)"); QRegularExpressionMatchIterator iter = re.globalMatch(body);