diff --git a/Source/cmEndForEachCommand.cxx b/Source/cmEndForEachCommand.cxx index f29feb908..6324d118a 100644 --- a/Source/cmEndForEachCommand.cxx +++ b/Source/cmEndForEachCommand.cxx @@ -18,18 +18,7 @@ bool cmEndForEachCommand::InvokeInitialPass(std::vector const& args) { - if(args.size() < 1 ) - { - this->SetError("called with incorrect number of arguments"); - return false; - } - - // remove any function blockers for this define - cmListFileFunction lff; - lff.m_Name = "ENDFOREACH"; - lff.m_Arguments = args; - m_Makefile->RemoveFunctionBlocker(lff); - - return true; + this->SetError("An ENDFOREACH command was found outside of a proper FOREACH ENDFOREACH structure. Or its arguments did not match the opening FOREACH command."); + return false; } diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx index 24f17fa1a..f8bda28fd 100644 --- a/Source/cmForEachCommand.cxx +++ b/Source/cmForEachCommand.cxx @@ -63,7 +63,8 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf) mf.ExecuteCommand(newLFF); } } - return false; + mf.RemoveFunctionBlocker(lff); + return true; } }