summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRolf Eike Beer <eike@sf-mail.de>2020-03-18 20:23:40 (GMT)
committerRolf Eike Beer <eike@sf-mail.de>2020-03-23 18:47:47 (GMT)
commit0415fa3be7b2940c8aebe2c246bd50139b349d26 (patch)
tree9673e515778bce398d96d8ed8b4e9027588e146a
parent871bf0cc88c6b16766c2182574613f6a6a1194fe (diff)
downloadCMake-0415fa3be7b2940c8aebe2c246bd50139b349d26.zip
CMake-0415fa3be7b2940c8aebe2c246bd50139b349d26.tar.gz
CMake-0415fa3be7b2940c8aebe2c246bd50139b349d26.tar.bz2
use std::string::rfind() instead of open coding it
While at it avoid creating a new string.
-rw-r--r--Source/CTest/cmCTestBuildHandler.cxx20
1 files changed, 8 insertions, 12 deletions
diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx
index 03a3fd3..90c5b2a 100644
--- a/Source/CTest/cmCTestBuildHandler.cxx
+++ b/Source/CTest/cmCTestBuildHandler.cxx
@@ -386,24 +386,20 @@ int cmCTestBuildHandler::ProcessHandler()
if (this->CTest->GetCTestConfiguration("SourceDirectory").size() > 20) {
std::string srcdir =
this->CTest->GetCTestConfiguration("SourceDirectory") + "/";
- for (cc = srcdir.size() - 2; cc > 0; cc--) {
- if (srcdir[cc] == '/') {
- srcdir = srcdir.substr(0, cc + 1);
- break;
- }
+ cc = srcdir.rfind('/', srcdir.size() - 2);
+ if (cc != std::string::npos) {
+ srcdir.resize(cc + 1);
+ this->SimplifySourceDir = std::move(srcdir);
}
- this->SimplifySourceDir = srcdir;
}
if (this->CTest->GetCTestConfiguration("BuildDirectory").size() > 20) {
std::string bindir =
this->CTest->GetCTestConfiguration("BuildDirectory") + "/";
- for (cc = bindir.size() - 2; cc > 0; cc--) {
- if (bindir[cc] == '/') {
- bindir = bindir.substr(0, cc + 1);
- break;
- }
+ cc = bindir.rfind('/', bindir.size() - 2);
+ if (cc != std::string::npos) {
+ bindir.resize(cc + 1);
+ this->SimplifyBuildDir = std::move(bindir);
}
- this->SimplifyBuildDir = bindir;
}
// Ok, let's do the build