From e9b6e65cbd0cfc522c3118c90467be8cea1ee797 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 19 Oct 2004 13:02:42 -0400 Subject: BUG: if the paths share nothing then just return the remote path with no .. --- Source/cmSystemTools.cxx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 033e5fe..26ebdca 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1221,15 +1221,6 @@ std::string cmSystemTools::RelativePath(const char* local, const char* remote) cmSystemTools::Error("RelativePath must be passed a full path to remote: ", remote); } - // check for driveletter: as the start of the path - // if not on the same drive then full path to local must be used. - if(local[0] && local[0] != '/') - { - if(remote[0] && local[0] != remote[0]) - { - return remote; - } - } // split up both paths into arrays of strings using / as a separator std::string localString = local; std::vector localSplit = cmSystemTools::SplitString(local, '/', true); @@ -1257,7 +1248,12 @@ std::string cmSystemTools::RelativePath(const char* local, const char* remote) remoteSplit[sameCount] = ""; sameCount++; } - + // If there is nothing in common with the paths, then just return the remote + if(sameCount == 0) + { + return remote; + } + // for each entry that is not common in the local path // add a ../ to the finalpath array, this gets us out of the local // path into the remote dir -- cgit v0.12