diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-02-08 12:17:59 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-02-08 12:17:59 (GMT) |
commit | 30daaa6a3e5e4bdfb1a3dae8a23dcf5f76197669 (patch) | |
tree | 1da9af8667219fef4e9776c9e13a63b9e0b10592 /Source/kwsys | |
parent | fba72969da714d7bb23f18d86481cc00d1c0570e (diff) | |
download | CMake-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
Diffstat (limited to 'Source/kwsys')
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 38 | ||||
-rw-r--r-- | Source/kwsys/SystemTools.hxx.in | 6 |
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 |