summaryrefslogtreecommitdiffstats
path: root/qmake/library/qmakeevaluator.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-12-16 15:21:35 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2016-12-16 16:38:33 +0100
commitb13150336174083962d90922761fd96f07e173b4 (patch)
tree1655e9009efba21b008d7d2f810aacbde3e2c2d8 /qmake/library/qmakeevaluator.cpp
parentff19ebcc2d9c9668af24fe8add9f70c160776367 (diff)
parent9bfe3ab71e5291445e66be96d6cd1f63934a2d83 (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: configure configure.pri examples/widgets/painting/fontsampler/mainwindow.cpp examples/widgets/painting/fontsampler/mainwindow.h mkspecs/features/moc.prf src/corelib/global/qglobal.h src/gui/text/qtextdocument.cpp Change-Id: Ica65512e00871695190a14ccea5c275b0165f787
Diffstat (limited to 'qmake/library/qmakeevaluator.cpp')
-rw-r--r--qmake/library/qmakeevaluator.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index fd24cf209d..767528eb57 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -594,6 +594,24 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProBlock(
tokPtr += blockLen;
okey = true, or_op = false; // force next evaluation
break;
+ case TokBypassNesting:
+ blockLen = getBlockLen(tokPtr);
+ if ((m_cumulative || okey != or_op) && blockLen) {
+ ProValueMapStack savedValuemapStack = m_valuemapStack;
+ m_valuemapStack.clear();
+ m_valuemapStack.append(savedValuemapStack.takeFirst());
+ traceMsg("visiting nesting-bypassing block");
+ ret = visitProBlock(tokPtr);
+ traceMsg("visited nesting-bypassing block");
+ savedValuemapStack.prepend(m_valuemapStack.first());
+ m_valuemapStack = savedValuemapStack;
+ } else {
+ traceMsg("skipped nesting-bypassing block");
+ ret = ReturnTrue;
+ }
+ tokPtr += blockLen;
+ okey = true, or_op = false; // force next evaluation
+ break;
case TokTestDef:
case TokReplaceDef:
if (m_cumulative || okey != or_op) {
@@ -1761,8 +1779,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateExpandFunction(
ProStringList args;
if (expandVariableReferences(tokPtr, 5, &args, true) == ReturnError)
return ReturnError;
- *ret = evaluateBuiltinExpand(func_t, func, args);
- return ReturnTrue;
+ return evaluateBuiltinExpand(func_t, func, args, *ret);
}
QHash<ProKey, ProFunctionDef>::ConstIterator it =