From 95d5ad4ab3ac93a11fd70e6407ea7261cc581749 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Thu, 29 Apr 2010 17:46:57 +0200 Subject: [PATCH] unify parsing of boolean arguments --- src/shared/proparser/profileevaluator.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index e1a0f33d740..c9f128c2cc1 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -1166,6 +1166,11 @@ static QString fixPathToLocalOS(const QString &str) return string; } +static bool isTrue(const QString &str) +{ + return !str.compare(statics.strtrue, Qt::CaseInsensitive) || str.toInt(); +} + //////// Evaluator ///////// ProItem::ProItemReturn ProFileEvaluator::Private::visitProBlock(ProItem *items) @@ -2258,7 +2263,7 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun bool singleLine = true; if (args.count() > 1) - singleLine = (!args[1].compare(statics.strtrue, Qt::CaseInsensitive)); + singleLine = isTrue(args.at(1)); QFile qfile(resolvePath(expandEnvVars(file))); if (qfile.open(QIODevice::ReadOnly)) { @@ -2318,7 +2323,7 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun + QLatin1String(" && ") + args[0]).toLatin1(), "r"); bool singleLine = true; if (args.count() > 1) - singleLine = (!args[1].compare(QLatin1String("true"), Qt::CaseInsensitive)); + singleLine = isTrue(args.at(1)); QString output; while (proc && !feof(proc)) { int read_in = int(fread(buff, 1, 255, proc)); @@ -2399,7 +2404,7 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun } else { bool recursive = false; if (args.count() == 2) - recursive = (!args[1].compare(statics.strtrue, Qt::CaseInsensitive) || args[1].toInt()); + recursive = isTrue(args.at(1)); QStringList dirs; QString r = fixPathToLocalOS(args[0]); QString pfx; @@ -2842,8 +2847,7 @@ ProItem::ProItemReturn ProFileEvaluator::Private::evaluateConditionalFunction( return ProItem::ReturnFalse; bool ignore_error = false; if (args.count() == 2) { - QString sarg = args[1]; - ignore_error = (!sarg.compare(statics.strtrue, Qt::CaseInsensitive) || sarg.toInt()); + ignore_error = isTrue(args.at(1)); } else if (args.count() != 1) { logMessage(format("load(feature) requires one or two arguments.")); return ProItem::ReturnFalse; -- GitLab