From ce484264de3ae08a5cca9b6c3f75d1a1f914b4a4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 12 Mar 2001 18:30:58 -0500 Subject: [PATCH] ENH: Improved error handling when GetError is called on a command that has not called SetError. --- Source/cmCommand.h | 9 ++++++++- Source/cmSystemTools.cxx | 11 ++++++++++- Source/cmSystemTools.h | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Source/cmCommand.h b/Source/cmCommand.h index 55841c432..ebfd609d6 100644 --- a/Source/cmCommand.h +++ b/Source/cmCommand.h @@ -120,7 +120,14 @@ public: * Return the last error string. */ const char* GetError() - {return m_Error.c_str();} + { + if(m_Error.length() == 0) + { + std::string m_Error = this->GetName(); + m_Error += " uknown error."; + } + return m_Error.c_str(); + } /** * Returns true if this class is the given class, or a subclass of it. diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 848e7be24..f6fff7785 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -358,7 +358,8 @@ void cmSystemTools::GetArguments(std::string& line, } } -void cmSystemTools::Error(const char* m1, const char* m2) +void cmSystemTools::Error(const char* m1, const char* m2, + const char* m3, const char* m4) { std::string message = "CMake Error: "; if(m1) @@ -369,6 +370,14 @@ void cmSystemTools::Error(const char* m1, const char* m2) { message += m2; } + if(m3) + { + message += m3; + } + if(m4) + { + message += m4; + } cmSystemTools::s_ErrorOccured = true; #if defined(_WIN32) && !defined(__CYGWIN__) ::MessageBox(0, message.c_str(), 0, MB_OK); diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index da948204f..fbc8c683b 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -94,7 +94,8 @@ public: /** * Display an error message. */ - static void Error(const char* m, const char* m2=0 ); + static void Error(const char* m, const char* m2=0, + const char* m3=0, const char* m4=0); ///! Return true if there was an error at any point. static bool GetErrorOccuredFlag()