From 7df84ffe58572a4535b08bc7b76148a60d38fbb4 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Fri, 20 Mar 2020 14:29:30 +0100 Subject: allow cmCTest::CleanString() to skip input characters This entirely avoids that one needs to call std::string::substr() for the input. --- Source/cmCTest.cxx | 7 ++++--- Source/cmCTest.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 157d315..28c12a4 100644 --- a/Source/cmCTest.cxx +++ b/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(); diff --git a/Source/cmCTest.h b/Source/cmCTest.h index 7f8f913..7177b76 100644 --- a/Source/cmCTest.h +++ b/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); -- cgit v0.12