From d1edc2a2fa9fb3d8d230e25c966869e43e5f217d Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Thu, 19 Feb 2009 12:42:32 +0100
Subject: [PATCH] Fixes:    - Console application doesn't start on Mac

Task:     - 244263
RevBy:    - dt
---
 src/shared/proparser/profileevaluator.cpp | 10 +++++++---
 src/shared/proparser/proparserutils.h     |  6 ++++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index c54b75a1e2d..8795b97d5b7 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -768,11 +768,15 @@ bool ProFileEvaluator::Private::visitProValue(ProValue *value)
         case ProVariable::RemoveOperator:       // -=
             if (!m_cumulative) {
                 if (!m_skipLevel) {
-                    removeEach(&m_valuemap, varName, v);
-                    removeEach(&m_filevaluemap[currentProFile()], varName, v);
+                    // the insertUnique is a hack for the moment to fix the
+                    // CONFIG -= app_bundle problem on Mac (add it to a variable -CONFIG as was done before)
+                    if (removeEach(&m_valuemap, varName, v) == 0)
+                        insertUnique(&m_valuemap, QString("-%1").arg(varName), v);
+                    if (removeEach(&m_filevaluemap[currentProFile()], varName, v) == 0)
+                        insertUnique(&m_filevaluemap[currentProFile()], QString("-%1").arg(varName), v);
                 }
             } else if (!m_skipLevel) {
-                // this is a hack for the moment to fix the
+                // the insertUnique is a hack for the moment to fix the
                 // CONFIG -= app_bundle problem on Mac (add it to a variable -CONFIG as was done before)
                 insertUnique(&m_valuemap, QString("-%1").arg(varName), v);
                 insertUnique(&m_filevaluemap[currentProFile()], QString("-%1").arg(varName), v);
diff --git a/src/shared/proparser/proparserutils.h b/src/shared/proparser/proparserutils.h
index 7c751c9c273..41c62c88191 100644
--- a/src/shared/proparser/proparserutils.h
+++ b/src/shared/proparser/proparserutils.h
@@ -140,12 +140,14 @@ static void insertUnique(QHash<QString, QStringList> *map,
             sl.append(str);
 }
 
-static void removeEach(QHash<QString, QStringList> *map,
+static int removeEach(QHash<QString, QStringList> *map,
     const QString &key, const QStringList &value)
 {
+    int count = 0;
     QStringList &sl = (*map)[key];
     foreach (const QString &str, value)
-        sl.removeAll(str);
+        count += sl.removeAll(str);
+    return count;
 }
 
 /*
-- 
GitLab