summaryrefslogtreecommitdiff
path: root/src/linguist/shared/qmakebuiltins.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2012-09-19 21:56:16 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-28 12:50:39 +0200
commitcdc456281617cffc12e6f406d8e2c7fcf7e97144 (patch)
treeab89a23f125c01fd854ade8d8b8f18691f12040d /src/linguist/shared/qmakebuiltins.cpp
parentb48c0d1307597eb8576cae2cb3fec969af9a1f80 (diff)
downloadqttools-cdc456281617cffc12e6f406d8e2c7fcf7e97144.tar.gz
make error() abort the qmake run, not just the current file
sync up implementation with qmake. this doesn't actually have an effect on lupdate, as error() is disarmed in cumulative mode. Change-Id: I82fc55680f9ffb227e25acb39c797596225ba89e Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qtbase/0da7f097249f71726140a38647bb4824b09fad7b) Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/linguist/shared/qmakebuiltins.cpp')
-rw-r--r--src/linguist/shared/qmakebuiltins.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/linguist/shared/qmakebuiltins.cpp b/src/linguist/shared/qmakebuiltins.cpp
index 0b36a1698..37ab82ff3 100644
--- a/src/linguist/shared/qmakebuiltins.cpp
+++ b/src/linguist/shared/qmakebuiltins.cpp
@@ -688,7 +688,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
ProValueMap vars;
QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
fn.detach();
- if (evaluateFileInto(fn, &vars, LoadProOnly))
+ if (evaluateFileInto(fn, &vars, LoadProOnly) == ReturnTrue)
ret = vars.value(map(args.at(1)));
}
break;
@@ -1098,8 +1098,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
ProValueMap vars;
QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
fn.detach();
- if (!evaluateFileInto(fn, &vars, LoadProOnly))
- return ReturnFalse;
+ VisitReturn ok = evaluateFileInto(fn, &vars, LoadProOnly);
+ if (ok != ReturnTrue)
+ return ok;
if (args.count() == 2)
return returnBool(vars.contains(map(args.at(1))));
QRegExp regx;
@@ -1308,12 +1309,12 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
}
QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
fn.detach();
- bool ok;
+ VisitReturn ok;
if (parseInto.isEmpty()) {
ok = evaluateFileChecked(fn, QMakeHandler::EvalIncludeFile, LoadProOnly | flags);
} else {
ProValueMap symbols;
- if ((ok = evaluateFileInto(fn, &symbols, LoadAll | flags))) {
+ if ((ok = evaluateFileInto(fn, &symbols, LoadAll | flags)) == ReturnTrue) {
ProValueMap newMap;
for (ProValueMap::ConstIterator
it = m_valuemapStack.top().constBegin(),
@@ -1334,7 +1335,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
m_valuemapStack.top() = newMap;
}
}
- return returnBool(ok || (flags & LoadSilent));
+ if (ok == ReturnFalse && (flags & LoadSilent))
+ ok = ReturnTrue;
+ return ok;
}
case T_LOAD: {
bool ignore_error = false;
@@ -1344,8 +1347,11 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
evalError(fL1S("load(feature) requires one or two arguments."));
return ReturnFalse;
}
- return returnBool(evaluateFeatureFile(m_option->expandEnvVars(args.at(0).toQString()),
- ignore_error) || ignore_error);
+ VisitReturn ok = evaluateFeatureFile(m_option->expandEnvVars(args.at(0).toQString()),
+ ignore_error);
+ if (ok == ReturnFalse && ignore_error)
+ ok = ReturnTrue;
+ return ok;
}
case T_DEBUG: {
#ifdef PROEVALUATOR_DEBUG