From 22d1351ddea193f5c00d4ae12229358dea826c62 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 14 Jul 2016 16:48:25 +0200 Subject: [PATCH] print no message at all when no argument is supplied to error() this is useful when an adequate message has already been emitted by other means, like various built-ins do. Change-Id: I092771f55969fad8b214204d666327664727c572 Reviewed-by: Lars Knoll --- qmake/library/qmakebuiltins.cpp | 2 +- tests/auto/tools/qmakelib/evaltest.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp index 628210b55b..ac3a866848 100644 --- a/qmake/library/qmakebuiltins.cpp +++ b/qmake/library/qmakebuiltins.cpp @@ -1587,7 +1587,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( #ifdef PROEVALUATOR_FULL fputs(msg.toLatin1().constData(), stderr); #endif - } else { + } else if (!msg.isEmpty() || func_t != T_ERROR) { m_handler->fileMessage( (func_t == T_ERROR ? QMakeHandler::ErrorMessage : func_t == T_WARNING ? QMakeHandler::WarningMessage : diff --git a/tests/auto/tools/qmakelib/evaltest.cpp b/tests/auto/tools/qmakelib/evaltest.cpp index 21c1759b08..ffdf9294b8 100644 --- a/tests/auto/tools/qmakelib/evaltest.cpp +++ b/tests/auto/tools/qmakelib/evaltest.cpp @@ -2346,12 +2346,18 @@ void tst_qmakelib::addTestFunctions(const QString &qindir) << "Project WARNING: World, be warned!" << true; - QTest::newRow("error()") + QTest::newRow("error(message)") << "error('World, you FAIL!'): OK = 1\nOKE = 1" << "OK = UNDEF\nOKE = UNDEF" << "Project ERROR: World, you FAIL!" << false; + QTest::newRow("error(empty)") + << "error(): OK = 1\nOKE = 1" + << "OK = UNDEF\nOKE = UNDEF" + << "" + << false; + QTest::newRow("if(error())") << "if(error(\\'World, you FAIL!\\')): OK = 1\nOKE = 1" << "OK = UNDEF\nOKE = UNDEF"