ENH: Added JoinPath overload that accepts an iterator range.
This commit is contained in:
parent
006b61be35
commit
3a44f2a47e
|
@ -2813,20 +2813,36 @@ void SystemTools::SplitPath(const char* p,
|
|||
kwsys_stl::string
|
||||
SystemTools::JoinPath(const kwsys_stl::vector<kwsys_stl::string>& components)
|
||||
{
|
||||
return SystemTools::JoinPath(components.begin(), components.end());
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
kwsys_stl::string
|
||||
SystemTools
|
||||
::JoinPath(kwsys_stl::vector<kwsys_stl::string>::const_iterator first,
|
||||
kwsys_stl::vector<kwsys_stl::string>::const_iterator last)
|
||||
{
|
||||
// Construct result in a single string.
|
||||
kwsys_stl::string result;
|
||||
if(components.size() > 0)
|
||||
|
||||
// The first two components do not add a slash.
|
||||
if(first != last)
|
||||
{
|
||||
result += components[0];
|
||||
result += *first++;
|
||||
}
|
||||
if(components.size() > 1)
|
||||
if(first != last)
|
||||
{
|
||||
result += components[1];
|
||||
result += *first++;
|
||||
}
|
||||
for(unsigned int i=2; i < components.size(); ++i)
|
||||
|
||||
// All remaining components are always separated with a slash.
|
||||
while(first != last)
|
||||
{
|
||||
result += "/";
|
||||
result += components[i];
|
||||
result += *first++;
|
||||
}
|
||||
|
||||
// Return the concatenated result.
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -364,6 +364,9 @@ public:
|
|||
*/
|
||||
static kwsys_stl::string JoinPath(
|
||||
const kwsys_stl::vector<kwsys_stl::string>& components);
|
||||
static kwsys_stl::string JoinPath(
|
||||
kwsys_stl::vector<kwsys_stl::string>::const_iterator first,
|
||||
kwsys_stl::vector<kwsys_stl::string>::const_iterator last);
|
||||
|
||||
/**
|
||||
* Compare a path or components of a path.
|
||||
|
|
Loading…
Reference in New Issue