diff options
-rw-r--r-- | Source/cmWhileCommand.cxx | 12 | ||||
-rw-r--r-- | Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/Source/cmWhileCommand.cxx b/Source/cmWhileCommand.cxx index 1363386..8938663 100644 --- a/Source/cmWhileCommand.cxx +++ b/Source/cmWhileCommand.cxx @@ -16,6 +16,7 @@ #include "cmListFileCache.h" #include "cmMakefile.h" #include "cmMessageType.h" +#include "cmOutputConverter.h" #include "cmSystemTools.h" #include "cmake.h" @@ -100,16 +101,13 @@ bool cmWhileFunctionBlocker::Replay(std::vector<cmListFileFunction> functions, } if (!isTrue && !errorString.empty()) { - std::string err = "had incorrect arguments: "; - for (cmListFileArgument const& arg : this->Args) { - err += (arg.Delim ? "\"" : ""); - err += arg.Value; - err += (arg.Delim ? "\"" : ""); + std::string err = "had incorrect arguments:\n "; + for (cmExpandedCommandArgument const& i : expandedArguments) { err += " "; + err += cmOutputConverter::EscapeForCMake(i.GetValue()); } - err += "("; + err += "\n"; err += errorString; - err += ")."; mf.GetCMakeInstance()->IssueMessage(messageType, err, whileBT); if (messageType == MessageType::FATAL_ERROR) { cmSystemTools::SetFatalErrorOccured(); diff --git a/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt b/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt index 33ac54a..9d4132c 100644 --- a/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt +++ b/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt @@ -1,5 +1,8 @@ CMake Error at unbalanced-parenthesis.cmake:[0-9]+ \(while\): - had incorrect arguments: NOT \$\{var_with_paren\} IN_LIST some_list - \(mismatched parenthesis in condition\). + had incorrect arguments: + + "NOT" "\(" "IN_LIST" "some_list" + + mismatched parenthesis in condition Call Stack \(most recent call first\): CMakeLists\.txt:[0-9]+ \(include\) |