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(
|
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand(
|
||||||
int func_t, const ProKey &func, const ProStringList &args)
|
int func_t, const ProKey &func, const ProStringList &args, ProStringList &ret)
|
||||||
{
|
{
|
||||||
ProStringList ret;
|
|
||||||
|
|
||||||
traceMsg("calling built-in $$%s(%s)", dbgKey(func), dbgSepStrList(args));
|
traceMsg("calling built-in $$%s(%s)", dbgKey(func), dbgSepStrList(args));
|
||||||
|
|
||||||
switch (func_t) {
|
switch (func_t) {
|
||||||
@@ -1108,6 +1106,11 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
|||||||
if (qfile.open(stdin, QIODevice::ReadOnly)) {
|
if (qfile.open(stdin, QIODevice::ReadOnly)) {
|
||||||
QTextStream t(&qfile);
|
QTextStream t(&qfile);
|
||||||
const QString &line = t.readLine();
|
const QString &line = t.readLine();
|
||||||
|
if (t.atEnd()) {
|
||||||
|
fputs("\n", stderr);
|
||||||
|
evalError(fL1S("Unexpected EOF."));
|
||||||
|
return ReturnError;
|
||||||
|
}
|
||||||
ret = split_value_list(QStringRef(&line));
|
ret = split_value_list(QStringRef(&line));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1277,7 +1280,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ReturnTrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
||||||
|
|||||||
@@ -1773,8 +1773,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateExpandFunction(
|
|||||||
ProStringList args;
|
ProStringList args;
|
||||||
if (expandVariableReferences(tokPtr, 5, &args, true) == ReturnError)
|
if (expandVariableReferences(tokPtr, 5, &args, true) == ReturnError)
|
||||||
return ReturnError;
|
return ReturnError;
|
||||||
*ret = evaluateBuiltinExpand(func_t, func, args);
|
return evaluateBuiltinExpand(func_t, func, args, *ret);
|
||||||
return ReturnTrue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QHash<ProKey, ProFunctionDef>::ConstIterator it =
|
QHash<ProKey, ProFunctionDef>::ConstIterator it =
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ public:
|
|||||||
VisitReturn evaluateExpandFunction(const ProKey &function, const ushort *&tokPtr, ProStringList *ret);
|
VisitReturn evaluateExpandFunction(const ProKey &function, const ushort *&tokPtr, ProStringList *ret);
|
||||||
VisitReturn evaluateConditionalFunction(const ProKey &function, const ushort *&tokPtr);
|
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 evaluateBuiltinConditional(int func_t, const ProKey &function, const ProStringList &args);
|
||||||
|
|
||||||
VisitReturn evaluateConditional(const QStringRef &cond, const QString &where, int line = -1);
|
VisitReturn evaluateConditional(const QStringRef &cond, const QString &where, int line = -1);
|
||||||
|
|||||||
Reference in New Issue
Block a user