BUG: fix #8704, sometimes crash if include_directories() is called with a whitespace string
Alex
This commit is contained in:
parent
5174fbd390
commit
3fe6b3ce37
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue