Commit 49068d94 authored by Brad King's avatar Brad King Committed by Kitware Robot

Merge topic 'SystemTools-SplitString-return'

5d6f59fe SystemTools: Change SplitString return type to use std::string
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !105
parents 2b0ca1d8 5d6f59fe
......@@ -1752,11 +1752,11 @@ std::string SystemTools::CropString(const std::string& s, size_t max_len)
return n;
}
std::vector<kwsys::String> SystemTools::SplitString(const std::string& p,
char sep, bool isPath)
std::vector<std::string> SystemTools::SplitString(const std::string& p,
char sep, bool isPath)
{
std::string path = p;
std::vector<kwsys::String> paths;
std::vector<std::string> paths;
if (path.empty()) {
return paths;
}
......@@ -3279,13 +3279,12 @@ std::string SystemTools::RelativePath(const std::string& local,
std::string r = SystemTools::CollapseFullPath(remote);
// split up both paths into arrays of strings using / as a separator
std::vector<kwsys::String> localSplit =
SystemTools::SplitString(l, '/', true);
std::vector<kwsys::String> remoteSplit =
std::vector<std::string> localSplit = SystemTools::SplitString(l, '/', true);
std::vector<std::string> remoteSplit =
SystemTools::SplitString(r, '/', true);
std::vector<kwsys::String>
std::vector<std::string>
commonPath; // store shared parts of path in this array
std::vector<kwsys::String> finalPath; // store the final relative path here
std::vector<std::string> finalPath; // store the final relative path here
// count up how many matching directory names there are from the start
unsigned int sameCount = 0;
while (((sameCount <= (localSplit.size() - 1)) &&
......@@ -3325,7 +3324,7 @@ std::string SystemTools::RelativePath(const std::string& local,
}
// for each entry that is not common in the remote path add it
// to the final path.
for (std::vector<String>::iterator vit = remoteSplit.begin();
for (std::vector<std::string>::iterator vit = remoteSplit.begin();
vit != remoteSplit.end(); ++vit) {
if (!vit->empty()) {
finalPath.push_back(*vit);
......@@ -3334,7 +3333,7 @@ std::string SystemTools::RelativePath(const std::string& local,
std::string relativePath; // result string
// now turn the array of directories into a unix path by puttint /
// between each entry that does not already have one
for (std::vector<String>::iterator vit1 = finalPath.begin();
for (std::vector<std::string>::iterator vit1 = finalPath.begin();
vit1 != finalPath.end(); ++vit1) {
if (!relativePath.empty() && *relativePath.rbegin() != '/') {
relativePath += "/";
......
......@@ -10,8 +10,6 @@
#include <string>
#include <vector>
#include <@KWSYS_NAMESPACE@/String.hxx>
#include <sys/types.h>
// include sys/stat.h after sys/types.h
#include <sys/stat.h>
......@@ -197,9 +195,9 @@ public:
s starts with a / then the first element of the returned array will
be /, so /foo/bar will be [/, foo, bar]
*/
static std::vector<String> SplitString(const std::string& s,
char separator = '/',
bool isPath = false);
static std::vector<std::string> SplitString(const std::string& s,
char separator = '/',
bool isPath = false);
/**
* Perform a case-independent string comparison
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment