Explorar el Código

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

John Biddiscombe hace 24 años
padre
commit
7d8d326d93
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      Source/cmSystemTools.cxx

+ 2 - 1
Source/cmSystemTools.cxx

@@ -182,6 +182,7 @@ void cmSystemTools::ReplaceString(std::string& source,
                                    const char* with)
 {
   std::string::size_type lengthReplace = strlen(replace);
+  std::string::size_type lengthWith = strlen(with);
   std::string rest;
   std::string::size_type start = source.find(replace);
   while(start != std::string::npos)
@@ -190,7 +191,7 @@ void cmSystemTools::ReplaceString(std::string& source,
     source = source.substr(0, start);
     source += with;
     source += rest;
-    start = source.find(replace, start + lengthReplace );
+    start = source.find(replace, start + lengthWith );
     }
 }