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