summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-06-01 17:33:00 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-06-01 17:34:11 (GMT)
commit75850db66758ccdb4500ca0d580a2b97215a9357 (patch)
tree992645dfc1f2c83659420620d8151fb7cd39c323 /Source
parent09e10f0937f971a5314a0b8f46c961c8c6e7fb2c (diff)
parent5e9bd8a2ea759c4f7e412a8591ee55fe057313dc (diff)
downloadCMake-75850db66758ccdb4500ca0d580a2b97215a9357.zip
CMake-75850db66758ccdb4500ca0d580a2b97215a9357.tar.gz
CMake-75850db66758ccdb4500ca0d580a2b97215a9357.tar.bz2
Merge topic 'update-kwsys'
5e9bd8a2 Merge branch 'upstream-KWSys' into update-kwsys 50988f6d KWSys 2017-05-31 (bd0bbad7) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !915
Diffstat (limited to 'Source')
-rw-r--r--Source/kwsys/SystemInformation.cxx3
-rw-r--r--Source/kwsys/SystemTools.cxx11
-rw-r--r--Source/kwsys/SystemTools.hxx.in4
-rw-r--r--Source/kwsys/testSystemTools.cxx8
4 files changed, 22 insertions, 4 deletions
diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx
index bfc895e..b7bd102 100644
--- a/Source/kwsys/SystemInformation.cxx
+++ b/Source/kwsys/SystemInformation.cxx
@@ -918,7 +918,8 @@ int LoadLines(const char* fileName, std::vector<std::string>& lines)
// ****************************************************************************
template <typename T>
-int NameValue(std::vector<std::string>& lines, std::string name, T& value)
+int NameValue(std::vector<std::string> const& lines, std::string const& name,
+ T& value)
{
size_t nLines = lines.size();
for (size_t i = 0; i < nLines; ++i) {
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 5ca382f..07da8dc 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -22,6 +22,7 @@
#include KWSYS_HEADER(FStream.hxx)
#include KWSYS_HEADER(Encoding.hxx)
+#include <algorithm>
#include <fstream>
#include <iostream>
#include <set>
@@ -3708,6 +3709,16 @@ std::string SystemTools::JoinPath(
return result;
}
+void SystemTools::RemoveEmptyPathElements(std::vector<std::string>& path)
+{
+ if (path.empty()) {
+ return;
+ }
+
+ path.erase(std::remove(path.begin() + 1, path.end(), std::string("")),
+ path.end());
+}
+
bool SystemTools::ComparePath(const std::string& c1, const std::string& c2)
{
#if defined(_WIN32) || defined(__APPLE__)
diff --git a/Source/kwsys/SystemTools.hxx.in b/Source/kwsys/SystemTools.hxx.in
index 0849e1d..5e091c2 100644
--- a/Source/kwsys/SystemTools.hxx.in
+++ b/Source/kwsys/SystemTools.hxx.in
@@ -474,6 +474,10 @@ public:
static std::string JoinPath(std::vector<std::string>::const_iterator first,
std::vector<std::string>::const_iterator last);
+ /** Removes empty components from path.
+ */
+ static void RemoveEmptyPathElements(std::vector<std::string>& path);
+
/**
* Compare a path or components of a path.
*/
diff --git a/Source/kwsys/testSystemTools.cxx b/Source/kwsys/testSystemTools.cxx
index 900894c..e6fbf6c 100644
--- a/Source/kwsys/testSystemTools.cxx
+++ b/Source/kwsys/testSystemTools.cxx
@@ -54,7 +54,8 @@ static const char* toUnixPaths[][2] = {
{ 0, 0 }
};
-static bool CheckConvertToUnixSlashes(std::string input, std::string output)
+static bool CheckConvertToUnixSlashes(std::string const& input,
+ std::string const& output)
{
std::string result = input;
kwsys::SystemTools::ConvertToUnixSlashes(result);
@@ -71,8 +72,9 @@ static const char* checkEscapeChars[][4] = { { "1 foo 2 bar 2", "12", "\\",
{ " {} ", "{}", "#", " #{#} " },
{ 0, 0, 0, 0 } };
-static bool CheckEscapeChars(std::string input, const char* chars_to_escape,
- char escape_char, std::string output)
+static bool CheckEscapeChars(std::string const& input,
+ const char* chars_to_escape, char escape_char,
+ std::string const& output)
{
std::string result = kwsys::SystemTools::EscapeChars(
input.c_str(), chars_to_escape, escape_char);