Skip to content
Snippets Groups Projects
Commit 8e3cf0af authored by Brad King's avatar Brad King
Browse files

BUG: Fix bug#5590. When converting a relative path between two full paths on...

BUG: Fix bug#5590.  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.
parent 181609c8
No related branches found
No related tags found
No related merge requests found
...@@ -2753,22 +2753,15 @@ kwsys_stl::string SystemTools::RelativePath(const char* local, const char* remot ...@@ -2753,22 +2753,15 @@ kwsys_stl::string SystemTools::RelativePath(const char* local, const char* remot
sameCount++; sameCount++;
} }
#if 0 // If there is nothing in common at all then just return the full
// NOTE: We did this at one time to prevent relative paths to the // path. This is the case only on windows when the paths have
// compiler from looking like "../../../../../../../usr/bin/gcc". // different drive letters. On unix two full paths always at least
// Now however relative paths are only computed for destinations // have the root "/" in common so we will return a relative path
// inside the build tree so this is not a problem. This is now a // that passes through the root directory.
// general-purpose method and should not have this hack. I'm if(sameCount == 0)
// 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)
{ {
return remote; return remote;
} }
#endif
// for each entry that is not common in the local path // for each entry that is not common in the local path
// add a ../ to the finalpath array, this gets us out of the local // add a ../ to the finalpath array, this gets us out of the local
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment