From 2ec78b4de772920065e81096b90b1f1d2ee42964 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 9 Feb 2010 13:31:12 -0500 Subject: [PATCH] cmCTestBZR: Strip trailing slashes from paths Our internal path processing methods assume no trailing slashes, but bzr adds trailing slashes to updated directories. This can lead to empty entries in Update.xml files. We address the problem by stripping the slashes as soon as they are parsed. --- Source/CTest/cmCTestBZR.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/CTest/cmCTestBZR.cxx b/Source/CTest/cmCTestBZR.cxx index d8ec9cdd54..55b8d5b75e 100644 --- a/Source/CTest/cmCTestBZR.cxx +++ b/Source/CTest/cmCTestBZR.cxx @@ -276,12 +276,14 @@ private: && !this->CData.empty()) { this->CurChange.Path.assign(&this->CData[0], this->CData.size()); + cmSystemTools::ConvertToUnixSlashes(this->CurChange.Path); this->Changes.push_back(this->CurChange); } else if(strcmp(name, "symlink") == 0 && !this->CData.empty()) { // symlinks have an arobase at the end in the log this->CurChange.Path.assign(&this->CData[0], this->CData.size()-1); + cmSystemTools::ConvertToUnixSlashes(this->CurChange.Path); this->Changes.push_back(this->CurChange); } else if(strcmp(name, "committer") == 0 && !this->CData.empty()) @@ -377,9 +379,10 @@ private: return true; } - void DoPath(char c0, char c1, char c2, std::string const& path) + void DoPath(char c0, char c1, char c2, std::string path) { if(path.empty()) return; + cmSystemTools::ConvertToUnixSlashes(path); const std::string dir = cmSystemTools::GetFilenamePath(path); const std::string name = cmSystemTools::GetFilenameName(path); @@ -488,9 +491,10 @@ private: return true; } - void DoPath(char c0, char c1, char c2, std::string const& path) + void DoPath(char c0, char c1, char c2, std::string path) { if(path.empty()) return; + cmSystemTools::ConvertToUnixSlashes(path); if ( c0=='C' ) {