Skip to content

Commit

Permalink
BUG: Fix bug#5590.
Browse files Browse the repository at this point in the history
     When converting a relative path between two full paths on different
     windows drive letters do not create a ../../d:/foo/bar path and just
     return the full path to the destination.
  • Loading branch information
Luis Ibanez committed Dec 21, 2007
1 parent d9ec80e commit b6e8e8c
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions GCC_XML/KWSys/SystemTools.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2747,22 +2747,15 @@ kwsys_stl::string SystemTools::RelativePath(const char* local, const char* remot
sameCount++;
}

#if 0
// NOTE: We did this at one time to prevent relative paths to the
// compiler from looking like "../../../../../../../usr/bin/gcc".
// Now however relative paths are only computed for destinations
// inside the build tree so this is not a problem. This is now a
// general-purpose method and should not have this hack. I'm
// leaving it in place in case removing it causes a problem so it is
// easy to restore:
//
// If there is nothing in common but the root directory, then just
// return the full path.
if(sameCount <= 1)
// If there is nothing in common at all then just return the full
// path. This is the case only on windows when the paths have
// different drive letters. On unix two full paths always at least
// have the root "/" in common so we will return a relative path
// that passes through the root directory.
if(sameCount == 0)
{
return remote;
}
#endif

// for each entry that is not common in the local path
// add a ../ to the finalpath array, this gets us out of the local
Expand Down

0 comments on commit b6e8e8c

Please sign in to comment.