diff options
author | Jason Ginchereau <jasongin@microsoft.com> | 2016-09-13 22:06:10 +0300 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-09-20 19:56:50 +0300 |
commit | c1e47ed8c883afba3c240e89d763a28a57ec1373 (patch) | |
tree | caea3252704eef64cfc4a42597cb0bc075118f00 | |
parent | 0f7fffb329ff522ba77cb1e98637ee54a498f186 (diff) |
path: fix path.relative UNC path result
When the result of a path.relative() is an absolute UNC path, it should
include the leading backslashes.
Fixes: https://github.com/nodejs/node/issues/8444
PR-URL: https://github.com/nodejs/node/pull/8523
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
-rw-r--r-- | lib/path.js | 6 | ||||
-rw-r--r-- | test/parallel/test-path.js | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/lib/path.js b/lib/path.js index 5637b328c1d..f2fb19edd9e 100644 --- a/lib/path.js +++ b/lib/path.js @@ -619,12 +619,8 @@ const win32 = { // We found a mismatch before the first common path separator was seen, so // return the original `to`. - // TODO: do this just for device roots (and not UNC paths)? if (i !== length && lastCommonSep === -1) { - if (toStart > 0) - return toOrig.slice(toStart); - else - return toOrig; + return toOrig; } var out = ''; diff --git a/test/parallel/test-path.js b/test/parallel/test-path.js index 5aa60eb7c66..cc6b302df43 100644 --- a/test/parallel/test-path.js +++ b/test/parallel/test-path.js @@ -492,7 +492,9 @@ const relativeTests = [ ['C:\\baz-quux', 'C:\\baz', '..\\baz'], ['C:\\baz', 'C:\\baz-quux', '..\\baz-quux'], ['\\\\foo\\baz-quux', '\\\\foo\\baz', '..\\baz'], - ['\\\\foo\\baz', '\\\\foo\\baz-quux', '..\\baz-quux'] + ['\\\\foo\\baz', '\\\\foo\\baz-quux', '..\\baz-quux'], + ['C:\\baz', '\\\\foo\\bar\\baz', '\\\\foo\\bar\\baz'], + ['\\\\foo\\bar\\baz', 'C:\\baz', 'C:\\baz'] ] ], [ path.posix.relative, |