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
wilder
Ahmad Samir 6 years ago
parent 500892be5d
commit 2055025c0c
  1. 1
      src/core/kauthorized.cpp
  2. 26
      src/kconfig_compiler/kconfig_compiler.cpp

@ -21,7 +21,6 @@
#include "kauthorized.h" #include "kauthorized.h"
#include <QDir> #include <QDir>
#include <QRegExp>
#include <QList> #include <QList>
#include <QUrl> #include <QUrl>

@ -32,7 +32,7 @@
#include <QSettings> #include <QSettings>
#include <QTextStream> #include <QTextStream>
#include <QDomAttr> #include <QDomAttr>
#include <QRegExp> #include <QRegularExpression>
#include <QStringList> #include <QStringList>
#include <qcommandlineparser.h> #include <qcommandlineparser.h>
@ -51,7 +51,7 @@ QTextStream cerr(stderr);
} }
QStringList allNames; QStringList allNames;
QRegExp *validNameRegexp; QRegularExpression *validNameRegexp;
QString This; QString This;
QString Const; QString Const;
@ -641,15 +641,6 @@ static QString dumpNode(const QDomNode &node)
return msg; 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) static QString signalEnumName(const QString &signalName)
{ {
QString result; QString result;
@ -699,8 +690,10 @@ static void preProcessDefault(QString &defaultValue, const QString &name,
defaultValue = QLatin1String("default") + name; defaultValue = QLatin1String("default") + name;
} else if (type == QLatin1String("Color") && !defaultValue.isEmpty()) { } else if (type == QLatin1String("Color") && !defaultValue.isEmpty()) {
QRegExp colorRe(QStringLiteral("\\d+,\\s*\\d+,\\s*\\d+(,\\s*\\d+)?")); const QRegularExpression colorRe(QRegularExpression::anchoredPattern(
if (colorRe.exactMatch(defaultValue)) { QStringLiteral("\\d+,\\s*\\d+,\\s*\\d+(,\\s*\\d+)?")));
if (colorRe.match(defaultValue).hasMatch()) {
defaultValue = QLatin1String("QColor( ") + defaultValue + QLatin1String(" )"); defaultValue = QLatin1String("QColor( ") + defaultValue + QLatin1String(" )");
} else { } else {
defaultValue = QLatin1String("QColor( \"") + defaultValue + QLatin1String("\" )"); 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) if (nameIsEmpty)
cerr << "The key '" << key << "' can not be used as name for the entry because " 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; "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.setApplicationName(QStringLiteral("kconfig_compiler"));
app.setApplicationVersion(QStringLiteral(KCONFIG_VERSION_STRING)); 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; QString inputFilename, codegenFilename;
@ -2232,7 +2226,7 @@ int main(int argc, char **argv)
if (cfg.customAddons) { if (cfg.customAddons) {
h << " // Include custom additions" << endl; h << " // Include custom additions" << endl;
h << " #include \"" << filenameOnly(baseName) << "_addons." << cfg.headerExtension << '"' << endl; h << " #include \"" << baseName << "_addons." << cfg.headerExtension << '"' << endl;
} }
h << "};" << endl << endl; h << "};" << endl << endl;

Loading…
Cancel
Save