summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-08 12:17:59 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-08 12:17:59 (GMT)
commit30daaa6a3e5e4bdfb1a3dae8a23dcf5f76197669 (patch)
tree1da9af8667219fef4e9776c9e13a63b9e0b10592
parentfba72969da714d7bb23f18d86481cc00d1c0570e (diff)
downloadCMake-30daaa6a3e5e4bdfb1a3dae8a23dcf5f76197669.zip
CMake-30daaa6a3e5e4bdfb1a3dae8a23dcf5f76197669.tar.gz
CMake-30daaa6a3e5e4bdfb1a3dae8a23dcf5f76197669.tar.bz2
COMP: Fix problem with STL on HP, and fix reusing the same variable in for loops
-rw-r--r--Source/kwsys/SystemTools.cxx38
-rw-r--r--Source/kwsys/SystemTools.hxx.in6
2 files changed, 22 insertions, 22 deletions
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 3bc092e..33d3632 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -1131,18 +1131,18 @@ kwsys_stl::string SystemTools::CropString(const kwsys_stl::string& s,
}
//----------------------------------------------------------------------------
-std::vector<kwsys::String> SystemTools::SplitString(const char* p, char sep, bool isPath)
+kwsys_stl::vector<kwsys::String> SystemTools::SplitString(const char* p, char sep, bool isPath)
{
- std::string path = p;
- std::vector<kwsys::String> paths;
+ kwsys_stl::string path = p;
+ kwsys_stl::vector<kwsys::String> paths;
if(isPath && path[0] == '/')
{
path.erase(path.begin());
paths.push_back("/");
}
- std::string::size_type pos1 = 0;
- std::string::size_type pos2 = path.find(sep, pos1+1);
- while(pos2 != std::string::npos)
+ kwsys_stl::string::size_type pos1 = 0;
+ kwsys_stl::string::size_type pos2 = path.find(sep, pos1+1);
+ while(pos2 != kwsys_stl::string::npos)
{
paths.push_back(path.substr(pos1, pos2-pos1));
pos1 = pos2+1;
@@ -2419,7 +2419,7 @@ kwsys_stl::string SystemTools::CollapseFullPath(const char* in_path,
}
// compute the relative path from here to there
-std::string SystemTools::RelativePath(const char* local, const char* remote)
+kwsys_stl::string SystemTools::RelativePath(const char* local, const char* remote)
{
if(!SystemTools::FileIsFullPath(local))
{
@@ -2431,10 +2431,10 @@ std::string SystemTools::RelativePath(const char* local, const char* remote)
}
// split up both paths into arrays of strings using / as a separator
- std::vector<kwsys::String> localSplit = SystemTools::SplitString(local, '/', true);
- std::vector<kwsys::String> remoteSplit = SystemTools::SplitString(remote, '/', true);
- std::vector<kwsys::String> commonPath; // store shared parts of path in this array
- std::vector<kwsys::String> finalPath; // store the final relative path here
+ kwsys_stl::vector<kwsys::String> localSplit = SystemTools::SplitString(local, '/', true);
+ kwsys_stl::vector<kwsys::String> remoteSplit = SystemTools::SplitString(remote, '/', true);
+ kwsys_stl::vector<kwsys::String> commonPath; // store shared parts of path in this array
+ kwsys_stl::vector<kwsys::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(
@@ -2475,25 +2475,25 @@ std::string SystemTools::RelativePath(const char* local, const char* remote)
}
// for each entry that is not common in the remote path add it
// to the final path.
- for(std::vector<String>::iterator i = remoteSplit.begin();
- i != remoteSplit.end(); ++i)
+ for(kwsys_stl::vector<String>::iterator vit = remoteSplit.begin();
+ vit != remoteSplit.end(); ++vit)
{
- if(i->size())
+ if(vit->size())
{
- finalPath.push_back(*i);
+ finalPath.push_back(*vit);
}
}
- std::string relativePath; // result string
+ kwsys_stl::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 i = finalPath.begin();
- i != finalPath.end(); ++i)
+ for(kwsys_stl::vector<String>::iterator vit1 = finalPath.begin();
+ vit1 != finalPath.end(); ++vit1)
{
if(relativePath.size() && relativePath[relativePath.size()-1] != '/')
{
relativePath += "/";
}
- relativePath += *i;
+ relativePath += *vit1;
}
return relativePath;
}
diff --git a/Source/kwsys/SystemTools.hxx.in b/Source/kwsys/SystemTools.hxx.in
index 31bfa9a..6eade40 100644
--- a/Source/kwsys/SystemTools.hxx.in
+++ b/Source/kwsys/SystemTools.hxx.in
@@ -182,8 +182,8 @@ 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 char* s, char separator = '/',
- bool isPath = false);
+ static kwsys_stl::vector<String> SplitString(const char* s, char separator = '/',
+ bool isPath = false);
/**
* Perform a case-independent string comparison
*/
@@ -590,7 +590,7 @@ public:
/a/b/c/d to /a/b/c1/d1 -> ../../c1/d1
from /usr/src to /usr/src/test/blah/foo.cpp -> test/blah/foo.cpp
*/
- static std::string RelativePath(const char* local, const char* remote);
+ static kwsys_stl::string RelativePath(const char* local, const char* remote);
/**
* Return file's modified time