Commit 50988f6d authored by Kitware Robot's avatar Kitware Robot Committed by Brad King
Browse files

KWSys 2017-05-31 (bd0bbad7)

Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit bd0bbad7f47776565d87aeb3657250974a426190 (master).

Upstream Shortlog
-----------------

Daniel Pfeifer (1):
      0f7ec930 Pass std::string as const&

Matteo Settenvini (1):
      6173f4b3 SystemTools: Add function to remove empty path components
parent 402c6c12
......@@ -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) {
......
......@@ -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__)
......
......@@ -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.
*/
......
......@@ -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);
......
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