diff options
author | Ken Martin <ken.martin@kitware.com> | 2002-09-10 14:16:50 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2002-09-10 14:16:50 (GMT) |
commit | d7a1063b209fd2649cca5e98353c71ff560f6e7a (patch) | |
tree | a119007c292a031d585a0552d89b3f12acf1ad8b | |
parent | c2cdd8f8d35d933c5857fda761f8778e6961f861 (diff) | |
download | CMake-d7a1063b209fd2649cca5e98353c71ff560f6e7a.zip CMake-d7a1063b209fd2649cca5e98353c71ff560f6e7a.tar.gz CMake-d7a1063b209fd2649cca5e98353c71ff560f6e7a.tar.bz2 |
better error checking on If statements
-rw-r--r-- | Source/cmEndIfCommand.cxx | 11 | ||||
-rw-r--r-- | Source/cmIfCommand.cxx | 7 |
2 files changed, 7 insertions, 11 deletions
diff --git a/Source/cmEndIfCommand.cxx b/Source/cmEndIfCommand.cxx index 7b46eaa..f91c38e 100644 --- a/Source/cmEndIfCommand.cxx +++ b/Source/cmEndIfCommand.cxx @@ -19,14 +19,7 @@ bool cmEndIfCommand::InitialPass(std::vector<std::string> const& args) { - if(args.size() < 1 ) - { - this->SetError("called with incorrect number of arguments"); - return false; - } - // remove any function blockers for this define - m_Makefile->RemoveFunctionBlocker("ENDIF",args); - - return true; + this->SetError("An ENDIF command was found outside of a proper IF ENDIF structure. Or its arguments did not match the opening IF command."); + return false; } diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index 0e20272..ebac504 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -19,7 +19,7 @@ bool cmIfFunctionBlocker:: IsFunctionBlocked(const char *name, const std::vector<std::string> &args, - cmMakefile &) + cmMakefile &mf) { if (!strcmp(name,"ELSE") || !strcmp(name,"ENDIF")) { @@ -32,7 +32,10 @@ IsFunctionBlocked(const char *name, const std::vector<std::string> &args, m_IsBlocking = !m_IsBlocking; return true; } - return false; + // otherwise it must be an ENDIF statement, in that case remove the + // function blocker + mf.RemoveFunctionBlocker("ENDIF",args); + return true; } else if(args.empty()) { |