Преглед на файлове

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 преди 24 години
родител
ревизия
7d8d326d93
променени са 1 файла, в които са добавени 2 реда и са изтрити 1 реда
  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 );
     }
 }