forked from qt-creator/qt-creator
qmake: abort when $$prompt() gets EOF
sync-up with qmake; no effect on creator. Change-Id: I51ca7df8d694c6ffe9d9899cba414b1b46f5ce95 (cherry picked from qtbase/80e63223f80643a93255cde9e0a4e82c705b2262) Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -555,11 +555,9 @@ void QMakeEvaluator::populateDeps(
|
||||
}
|
||||
}
|
||||
|
||||
ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
||||
int func_t, const ProKey &func, const ProStringList &args)
|
||||
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand(
|
||||
int func_t, const ProKey &func, const ProStringList &args, ProStringList &ret)
|
||||
{
|
||||
ProStringList ret;
|
||||
|
||||
traceMsg("calling built-in $$%s(%s)", dbgKey(func), dbgSepStrList(args));
|
||||
|
||||
switch (func_t) {
|
||||
@@ -1108,6 +1106,11 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
||||
if (qfile.open(stdin, QIODevice::ReadOnly)) {
|
||||
QTextStream t(&qfile);
|
||||
const QString &line = t.readLine();
|
||||
if (t.atEnd()) {
|
||||
fputs("\n", stderr);
|
||||
evalError(fL1S("Unexpected EOF."));
|
||||
return ReturnError;
|
||||
}
|
||||
ret = split_value_list(QStringRef(&line));
|
||||
}
|
||||
}
|
||||
@@ -1277,7 +1280,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return ReturnTrue;
|
||||
}
|
||||
|
||||
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
||||
|
||||
@@ -1773,8 +1773,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 =
|
||||
|
||||
@@ -209,7 +209,7 @@ public:
|
||||
VisitReturn evaluateExpandFunction(const ProKey &function, const ushort *&tokPtr, ProStringList *ret);
|
||||
VisitReturn evaluateConditionalFunction(const ProKey &function, const ushort *&tokPtr);
|
||||
|
||||
ProStringList evaluateBuiltinExpand(int func_t, const ProKey &function, const ProStringList &args);
|
||||
VisitReturn evaluateBuiltinExpand(int func_t, const ProKey &function, const ProStringList &args, ProStringList &ret);
|
||||
VisitReturn evaluateBuiltinConditional(int func_t, const ProKey &function, const ProStringList &args);
|
||||
|
||||
VisitReturn evaluateConditional(const QStringRef &cond, const QString &where, int line = -1);
|
||||
|
||||
Reference in New Issue
Block a user