BUG: fix #8704, sometimes crash if include_directories() is called with a whitespace string

Alex
This commit is contained in:
Alexander Neundorf 2009-03-12 19:24:27 -04:00
parent 5174fbd390
commit 3fe6b3ce37
1 changed files with 7 additions and 12 deletions

View File

@ -94,22 +94,17 @@ void cmIncludeDirectoryCommand::AddDirectory(const char *i,
} }
// remove any leading or trailing spaces and \r // remove any leading or trailing spaces and \r
pos = ret.size()-1; std::string::size_type b = ret.find_first_not_of(" \r");
while(ret[pos] == ' ' || ret[pos] == '\r') std::string::size_type e = ret.find_last_not_of(" \r");
if ((b!=ret.npos) && (e!=ret.npos))
{ {
ret.erase(pos); ret.assign(ret, b, 1+e-b); // copy the remaining substring
pos--;
} }
pos = 0; else
while(ret.size() && ret[pos] == ' ' || ret[pos] == '\r')
{ {
ret.erase(pos,1); return; // if we get here, we had only whitespace in the string
} }
if (!ret.size())
{
return;
}
if (!cmSystemTools::IsOff(ret.c_str())) if (!cmSystemTools::IsOff(ret.c_str()))
{ {
cmSystemTools::ConvertToUnixSlashes(ret); cmSystemTools::ConvertToUnixSlashes(ret);