better error checking on If statements

This commit is contained in:
Ken Martin 2002-09-10 10:16:50 -04:00
parent c2cdd8f8d3
commit d7a1063b20
2 changed files with 7 additions and 11 deletions

View File

@ -19,14 +19,7 @@
bool cmEndIfCommand::InitialPass(std::vector<std::string> const& args) bool cmEndIfCommand::InitialPass(std::vector<std::string> const& args)
{ {
if(args.size() < 1 ) 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;
this->SetError("called with incorrect number of arguments");
return false;
}
// remove any function blockers for this define
m_Makefile->RemoveFunctionBlocker("ENDIF",args);
return true;
} }

View File

@ -19,7 +19,7 @@
bool cmIfFunctionBlocker:: bool cmIfFunctionBlocker::
IsFunctionBlocked(const char *name, const std::vector<std::string> &args, IsFunctionBlocked(const char *name, const std::vector<std::string> &args,
cmMakefile &) cmMakefile &mf)
{ {
if (!strcmp(name,"ELSE") || !strcmp(name,"ENDIF")) 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; m_IsBlocking = !m_IsBlocking;
return true; 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()) else if(args.empty())
{ {