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)
{
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;
}

View File

@ -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())
{