Merge branch 'upstream-KWSys' into update-kwsys

* upstream-KWSys:
  KWSys 2018-06-22 (49068d94)
This commit is contained in:
Brad King 2018-06-22 11:31:36 -04:00
commit f2d97c1cdf
2 changed files with 12 additions and 15 deletions

View File

@ -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 += "/";

View File

@ -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
*/