From 1dda2ec55a07f2a51d09f7b1604707e690e884b5 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Tue, 30 Aug 2016 13:36:51 -0400
Subject: Improve error message on unexpected end of file

Suggested-by: Stephen Kelly <steveire@gmail.com>
---
 Source/cmListFileCache.cxx                  | 3 +--
 Tests/RunCMake/Syntax/CommandEOF-result.txt | 1 +
 Tests/RunCMake/Syntax/CommandEOF-stderr.txt | 6 ++++++
 Tests/RunCMake/Syntax/CommandEOF.cmake      | 1 +
 Tests/RunCMake/Syntax/RunCMakeTest.cmake    | 1 +
 5 files changed, 10 insertions(+), 2 deletions(-)
 create mode 100644 Tests/RunCMake/Syntax/CommandEOF-result.txt
 create mode 100644 Tests/RunCMake/Syntax/CommandEOF-stderr.txt
 create mode 100644 Tests/RunCMake/Syntax/CommandEOF.cmake

diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index 3c5e333..aad538c 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -163,8 +163,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
   if (!token) {
     std::ostringstream error;
     /* clang-format off */
-    error << "Error in cmake code at\n" << this->FileName << ":"
-          << cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n"
+    error << "Unexpected end of file.\n"
           << "Parse error.  Function missing opening \"(\".";
     /* clang-format on */
     this->IssueError(error.str());
diff --git a/Tests/RunCMake/Syntax/CommandEOF-result.txt b/Tests/RunCMake/Syntax/CommandEOF-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CommandEOF-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/Syntax/CommandEOF-stderr.txt b/Tests/RunCMake/Syntax/CommandEOF-stderr.txt
new file mode 100644
index 0000000..31cbc08
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CommandEOF-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Error in CommandEOF.cmake:
+  Unexpected end of file.
+
+  Parse error.  Function missing opening "\(".
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/Syntax/CommandEOF.cmake b/Tests/RunCMake/Syntax/CommandEOF.cmake
new file mode 100644
index 0000000..36ebb02
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CommandEOF.cmake
@@ -0,0 +1 @@
+message
\ No newline at end of file
diff --git a/Tests/RunCMake/Syntax/RunCMakeTest.cmake b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
index fd012b9..d1fbb16 100644
--- a/Tests/RunCMake/Syntax/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
@@ -17,6 +17,7 @@ run_cmake(CommandSpaces)
 run_cmake(CommandTabs)
 run_cmake(CommandNewlines)
 run_cmake(CommandComments)
+run_cmake(CommandEOF)
 run_cmake(CommandError0)
 run_cmake(CommandError1)
 run_cmake(CommandError2)
-- 
cgit v0.12