Sfoglia il codice sorgente

allow cmCTest::CleanString() to skip input characters

This entirely avoids that one needs to call std::string::substr() for the
input.
Rolf Eike Beer 5 anni fa
parent
commit
7df84ffe58
2 ha cambiato i file con 6 aggiunte e 4 eliminazioni
  1. 4 3
      Source/cmCTest.cxx
  2. 2 1
      Source/cmCTest.h

+ 4 - 3
Source/cmCTest.cxx

@@ -271,9 +271,10 @@ bool cmCTest::GetTomorrowTag() const
   return this->Impl->TomorrowTag;
 }
 
-std::string cmCTest::CleanString(const std::string& str)
+std::string cmCTest::CleanString(const std::string& str,
+                                 std::string::size_type spos)
 {
-  std::string::size_type spos = str.find_first_not_of(" \n\t\r\f\v");
+  spos = str.find_first_not_of(" \n\t\r\f\v", spos);
   std::string::size_type epos = str.find_last_not_of(" \n\t\r\f\v");
   if (spos == std::string::npos) {
     return std::string();
@@ -738,7 +739,7 @@ bool cmCTest::UpdateCTestConfiguration()
         continue;
       }
       std::string key = line.substr(0, cpos);
-      std::string value = cmCTest::CleanString(line.substr(cpos + 1));
+      std::string value = cmCTest::CleanString(line, cpos + 1);
       this->Impl->CTestConfiguration[key] = value;
     }
     fin.close();

+ 2 - 1
Source/cmCTest.h

@@ -140,7 +140,8 @@ public:
 
   std::string GetTestModelString();
   static int GetTestModelFromString(const char* str);
-  static std::string CleanString(const std::string& str);
+  static std::string CleanString(const std::string& str,
+                                 std::string::size_type spos = 0);
   std::string GetCTestConfiguration(const std::string& name);
   void SetCTestConfiguration(const char* name, const char* value,
                              bool suppress = false);