make include(,<into>) implementation a bit less convoluted
this goes at the cost of <into> without the subsequent dot not being filtered before the result insertion any more. that's not expected to be a problem, as it's not particularly useful to iterate the target namespace without the dot in the first place. Change-Id: Ib3497a60613b4c8c26676fe76b731239e427b8a7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
parent
f137957e08
commit
3277143f96
@ -211,6 +211,10 @@ inline QString operator+(const ProString &one, const char *two)
|
|||||||
{ QString ret = one.toQStringRef() + two; ret.detach(); return ret; }
|
{ QString ret = one.toQStringRef() + two; ret.detach(); return ret; }
|
||||||
inline QString operator+(const char *one, const ProString &two)
|
inline QString operator+(const char *one, const ProString &two)
|
||||||
{ QString ret = one + two.toQStringRef(); ret.detach(); return ret; }
|
{ 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)
|
inline QString &operator+=(QString &that, const ProString &other)
|
||||||
{ return that += other.toQStringRef(); }
|
{ return that += other.toQStringRef(); }
|
||||||
|
@ -1519,7 +1519,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
|||||||
if (m_cumulative)
|
if (m_cumulative)
|
||||||
flags = LoadSilent;
|
flags = LoadSilent;
|
||||||
if (args.count() >= 2) {
|
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)))
|
if (args.count() >= 3 && isTrue(args.at(2)))
|
||||||
flags = LoadSilent;
|
flags = LoadSilent;
|
||||||
}
|
}
|
||||||
@ -1536,17 +1537,15 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
|||||||
it = m_valuemapStack.top().constBegin(),
|
it = m_valuemapStack.top().constBegin(),
|
||||||
end = m_valuemapStack.top().constEnd();
|
end = m_valuemapStack.top().constEnd();
|
||||||
it != end; ++it) {
|
it != end; ++it) {
|
||||||
const QString &ky = it.key().toQString(m_tmp1);
|
const ProString &ky = it.key();
|
||||||
if (!(ky.startsWith(parseInto) &&
|
if (!ky.startsWith(parseInto))
|
||||||
(ky.length() == parseInto.length()
|
|
||||||
|| ky.at(parseInto.length()) == QLatin1Char('.'))))
|
|
||||||
newMap[it.key()] = it.value();
|
newMap[it.key()] = it.value();
|
||||||
}
|
}
|
||||||
for (ProValueMap::ConstIterator it = symbols.constBegin();
|
for (ProValueMap::ConstIterator it = symbols.constBegin();
|
||||||
it != symbols.constEnd(); ++it) {
|
it != symbols.constEnd(); ++it) {
|
||||||
const QString &ky = it.key().toQString(m_tmp1);
|
const QString &ky = it.key().toQString(m_tmp1);
|
||||||
if (!ky.startsWith(QLatin1Char('.')))
|
if (!ky.startsWith(QLatin1Char('.')))
|
||||||
newMap.insert(ProKey(parseInto + QLatin1Char('.') + ky), it.value());
|
newMap.insert(ProKey(parseInto + ky), it.value());
|
||||||
}
|
}
|
||||||
m_valuemapStack.top() = newMap;
|
m_valuemapStack.top() = newMap;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user