summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/library/proitems.h4
-rw-r--r--qmake/library/qmakebuiltins.cpp11
2 files changed, 9 insertions, 6 deletions
diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h
index 165ce40189..a3d2c01760 100644
--- a/qmake/library/proitems.h
+++ b/qmake/library/proitems.h
@@ -211,6 +211,10 @@ inline QString operator+(const ProString &one, const char *two)
{ QString ret = one.toQStringRef() + two; ret.detach(); return ret; }
inline QString operator+(const char *one, const ProString &two)
{ QString ret = one + two.toQStringRef(); ret.detach(); return ret; }
+inline QString operator+(const ProString &one, QChar two)
+ { return one.toQStringRef() + two; }
+inline QString operator+(QChar one, const ProString &two)
+ { return one + two.toQStringRef(); }
inline QString &operator+=(QString &that, const ProString &other)
{ return that += other.toQStringRef(); }
diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp
index ba621c1c72..1be57bd845 100644
--- a/qmake/library/qmakebuiltins.cpp
+++ b/qmake/library/qmakebuiltins.cpp
@@ -1519,7 +1519,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
if (m_cumulative)
flags = LoadSilent;
if (args.count() >= 2) {
- parseInto = args.at(1).toQString(m_tmp2);
+ if (!args.at(1).isEmpty())
+ parseInto = args.at(1) + QLatin1Char('.');
if (args.count() >= 3 && isTrue(args.at(2)))
flags = LoadSilent;
}
@@ -1536,17 +1537,15 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
it = m_valuemapStack.top().constBegin(),
end = m_valuemapStack.top().constEnd();
it != end; ++it) {
- const QString &ky = it.key().toQString(m_tmp1);
- if (!(ky.startsWith(parseInto) &&
- (ky.length() == parseInto.length()
- || ky.at(parseInto.length()) == QLatin1Char('.'))))
+ const ProString &ky = it.key();
+ if (!ky.startsWith(parseInto))
newMap[it.key()] = it.value();
}
for (ProValueMap::ConstIterator it = symbols.constBegin();
it != symbols.constEnd(); ++it) {
const QString &ky = it.key().toQString(m_tmp1);
if (!ky.startsWith(QLatin1Char('.')))
- newMap.insert(ProKey(parseInto + QLatin1Char('.') + ky), it.value());
+ newMap.insert(ProKey(parseInto + ky), it.value());
}
m_valuemapStack.top() = newMap;
}