aboutsummaryrefslogtreecommitdiff
path: root/src/kconfig_compiler
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2019-12-20 21:29:43 +0200
committerAhmad Samir <a.samirh78@gmail.com>2020-01-05 11:50:18 +0200
commit2055025c0c79a0e21e43fc8de02a4a2deedcb2fa (patch)
tree8fcf6a363fd2a39207df1230a0cf259a48c89351 /src/kconfig_compiler
parent500892be5d7526e226dbddb7d4570d47cf42eeff (diff)
downloadkconfig-2055025c0c79a0e21e43fc8de02a4a2deedcb2fa.tar.gz
kconfig-2055025c0c79a0e21e43fc8de02a4a2deedcb2fa.tar.bz2
Port QRegExp to QRegularExpression
Summary: Port QRegExp::exactMatch() by using QRegularExpression::anchoredPattern() to match the entire subject string. Remove filenameOnly(), it's been broken for a long time (QStringLiteral("[/\\]") is not a valid QRegExp pattern); besides it's not needed as QFileInfo::fileName() is used to get the filename. Test Plan: make && ctest Reviewers: #frameworks, dfaure, ervin, apol Reviewed By: dfaure, ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26177
Diffstat (limited to 'src/kconfig_compiler')
-rw-r--r--src/kconfig_compiler/kconfig_compiler.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp
index 985210f5..848595f2 100644
--- a/src/kconfig_compiler/kconfig_compiler.cpp
+++ b/src/kconfig_compiler/kconfig_compiler.cpp
@@ -32,7 +32,7 @@
#include <QSettings>
#include <QTextStream>
#include <QDomAttr>
-#include <QRegExp>
+#include <QRegularExpression>
#include <QStringList>
#include <qcommandlineparser.h>
@@ -51,7 +51,7 @@ QTextStream cerr(stderr);
}
QStringList allNames;
-QRegExp *validNameRegexp;
+QRegularExpression *validNameRegexp;
QString This;
QString Const;
@@ -641,15 +641,6 @@ static QString dumpNode(const QDomNode &node)
return msg;
}
-static QString filenameOnly(const QString &path)
-{
- int i = path.lastIndexOf(QRegExp(QStringLiteral("[/\\]")));
- if (i >= 0) {
- return path.mid(i + 1);
- }
- return path;
-}
-
static QString signalEnumName(const QString &signalName)
{
QString result;
@@ -699,8 +690,10 @@ static void preProcessDefault(QString &defaultValue, const QString &name,
defaultValue = QLatin1String("default") + name;
} else if (type == QLatin1String("Color") && !defaultValue.isEmpty()) {
- QRegExp colorRe(QStringLiteral("\\d+,\\s*\\d+,\\s*\\d+(,\\s*\\d+)?"));
- if (colorRe.exactMatch(defaultValue)) {
+ const QRegularExpression colorRe(QRegularExpression::anchoredPattern(
+ QStringLiteral("\\d+,\\s*\\d+,\\s*\\d+(,\\s*\\d+)?")));
+
+ if (colorRe.match(defaultValue).hasMatch()) {
defaultValue = QLatin1String("QColor( ") + defaultValue + QLatin1String(" )");
} else {
defaultValue = QLatin1String("QColor( \"") + defaultValue + QLatin1String("\" )");
@@ -953,7 +946,7 @@ CfgEntry *parseEntry(const QString &group, const QDomElement &element, const Cfg
}
}
- if (!validNameRegexp->exactMatch(name)) {
+ if (!validNameRegexp->match(name).hasMatch()) {
if (nameIsEmpty)
cerr << "The key '" << key << "' can not be used as name for the entry because "
"it is not a valid name. You need to specify a valid name for this entry." << endl;
@@ -1568,7 +1561,8 @@ int main(int argc, char **argv)
app.setApplicationName(QStringLiteral("kconfig_compiler"));
app.setApplicationVersion(QStringLiteral(KCONFIG_VERSION_STRING));
- validNameRegexp = new QRegExp(QStringLiteral("[a-zA-Z_][a-zA-Z0-9_]*"));
+ validNameRegexp = new QRegularExpression(QRegularExpression::anchoredPattern(
+ QStringLiteral("[a-zA-Z_][a-zA-Z0-9_]*")));
QString inputFilename, codegenFilename;
@@ -2232,7 +2226,7 @@ int main(int argc, char **argv)
if (cfg.customAddons) {
h << " // Include custom additions" << endl;
- h << " #include \"" << filenameOnly(baseName) << "_addons." << cfg.headerExtension << '"' << endl;
+ h << " #include \"" << baseName << "_addons." << cfg.headerExtension << '"' << endl;
}
h << "};" << endl << endl;