summaryrefslogtreecommitdiff
path: root/src/linguist/shared/qmakebuiltins.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/linguist/shared/qmakebuiltins.cpp')
-rw-r--r--src/linguist/shared/qmakebuiltins.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/linguist/shared/qmakebuiltins.cpp b/src/linguist/shared/qmakebuiltins.cpp
index b2132c35f..37ab82ff3 100644
--- a/src/linguist/shared/qmakebuiltins.cpp
+++ b/src/linguist/shared/qmakebuiltins.cpp
@@ -195,7 +195,7 @@ static bool isTrue(const ProString &_str, QString &tmp)
return !str.compare(statics.strtrue, Qt::CaseInsensitive) || str.toInt();
}
-#ifdef Q_OS_WIN
+#if defined(Q_OS_WIN) && defined(PROEVALUATOR_FULL)
static QString windowsErrorCode()
{
wchar_t *string = 0;
@@ -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