diff options
Diffstat (limited to 'src/linguist/shared/qmakebuiltins.cpp')
-rw-r--r-- | src/linguist/shared/qmakebuiltins.cpp | 24 |
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 |