ERR: ReplaceString didn't work properly if replace was longer than with as
length added to start pos on next search was replaceLength instead of withLength
This commit is contained in:
parent
2c276fcb13
commit
7d8d326d93
|
@ -182,6 +182,7 @@ void cmSystemTools::ReplaceString(std::string& source,
|
||||||
const char* with)
|
const char* with)
|
||||||
{
|
{
|
||||||
std::string::size_type lengthReplace = strlen(replace);
|
std::string::size_type lengthReplace = strlen(replace);
|
||||||
|
std::string::size_type lengthWith = strlen(with);
|
||||||
std::string rest;
|
std::string rest;
|
||||||
std::string::size_type start = source.find(replace);
|
std::string::size_type start = source.find(replace);
|
||||||
while(start != std::string::npos)
|
while(start != std::string::npos)
|
||||||
|
@ -190,7 +191,7 @@ void cmSystemTools::ReplaceString(std::string& source,
|
||||||
source = source.substr(0, start);
|
source = source.substr(0, start);
|
||||||
source += with;
|
source += with;
|
||||||
source += rest;
|
source += rest;
|
||||||
start = source.find(replace, start + lengthReplace );
|
start = source.find(replace, start + lengthWith );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue