From 2274ceb47dd80c0eb893ee1d6747f88a23e9adcb Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Tue, 16 Dec 2008 10:33:40 +0100
Subject: [PATCH] Expand $(VAR)-style environment variables

Task:	229217
---
 shared/proparser/profileevaluator.cpp | 15 ++++++++++++---
 shared/proparser/proparserutils.h     |  7 ++++++-
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/shared/proparser/profileevaluator.cpp b/shared/proparser/profileevaluator.cpp
index b7c296420af..723c6e2216f 100644
--- a/shared/proparser/profileevaluator.cpp
+++ b/shared/proparser/profileevaluator.cpp
@@ -1713,7 +1713,7 @@ bool ProFileEvaluator::Private::evaluateConditionalFunction(const QString &funct
                 ok = false;
                 break;
             }
-            QString msg = args.first();
+            QString msg = fixEnvVariables(args.first());
             if (function == QLatin1String("error")) {
                 QStringList parents;
                 foreach (ProFile *proFile, m_profileStack)
@@ -2085,14 +2085,23 @@ bool ProFileEvaluator::contains(const QString &variableName) const
     return d->m_valuemap.contains(variableName);
 }
 
+inline QStringList fixEnvVariables(const QStringList &x)
+{
+    QStringList ret;
+    foreach (const QString &str, x)
+        ret << Option::fixString(str, Option::FixEnvVars);
+    return ret;
+}
+
+
 QStringList ProFileEvaluator::values(const QString &variableName) const
 {
-    return d->values(variableName);
+    return fixEnvVariables(d->values(variableName));
 }
 
 QStringList ProFileEvaluator::values(const QString &variableName, const ProFile *pro) const
 {
-    return d->values(variableName, pro);
+    return fixEnvVariables(d->values(variableName, pro));
 }
 
 ProFileEvaluator::TemplateType ProFileEvaluator::templateType()
diff --git a/shared/proparser/proparserutils.h b/shared/proparser/proparserutils.h
index daab115a447..6705ffad39f 100644
--- a/shared/proparser/proparserutils.h
+++ b/shared/proparser/proparserutils.h
@@ -173,7 +173,12 @@ static QStringList replaceInList(const QStringList &varList, const QRegExp &rege
 }
 */
 
-inline QStringList splitPathList(const QString paths)
+inline QString fixEnvVariables(const QString &x)
+{
+    return Option::fixString(x, Option::FixEnvVars);
+}
+
+inline QStringList splitPathList(const QString &paths)
 {
     return paths.split(Option::dirlist_sep);
 }
-- 
GitLab