summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2002-09-10 10:16:50 -0400
committerKen Martin <ken.martin@kitware.com>2002-09-10 10:16:50 -0400
commitd7a1063b209fd2649cca5e98353c71ff560f6e7a (patch)
treea119007c292a031d585a0552d89b3f12acf1ad8b
parentc2cdd8f8d35d933c5857fda761f8778e6961f861 (diff)
downloadcmake-d7a1063b209fd2649cca5e98353c71ff560f6e7a.tar.gz
better error checking on If statements
-rw-r--r--Source/cmEndIfCommand.cxx11
-rw-r--r--Source/cmIfCommand.cxx7
2 files changed, 7 insertions, 11 deletions
diff --git a/Source/cmEndIfCommand.cxx b/Source/cmEndIfCommand.cxx
index 7b46eaa8b0..f91c38e55d 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 0e2027248b..ebac504ee4 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())
{