diff options
author | Araq <rumpf_a@web.de> | 2018-09-07 19:20:44 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2018-09-07 19:21:17 +0200 |
commit | f078f272e5080d2b0983b53750e9d0b2d63c5e02 (patch) | |
tree | 892e831cd2a66d6fecc9c35ba87de4b5f1d6d578 /compiler/pathutils.nim | |
parent | e06a89e11234e8882a4021d8d7cad0883c431f86 (diff) | |
download | Nim-f078f272e5080d2b0983b53750e9d0b2d63c5e02.tar.gz |
make tests green again
Diffstat (limited to 'compiler/pathutils.nim')
-rw-r--r-- | compiler/pathutils.nim | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/compiler/pathutils.nim b/compiler/pathutils.nim index b27981159..e5317d5c3 100644 --- a/compiler/pathutils.nim +++ b/compiler/pathutils.nim @@ -111,11 +111,12 @@ proc canon(x: string; result: var string; state: var int) = # f/.. while d > (state and 1) and result[d-1] != DirSep: dec d - setLen(result, d) + setLen(result, d-1) elif isDot(x, b): discard "discard the dot" - else: - if result.len > (state and 1): result.add DirSep + elif b[1] > b[0]: + if result.len > 0 and result[^1] != DirSep: + result.add DirSep result.add substr(x, b[0], b[1]) inc state, 2 @@ -253,3 +254,7 @@ when isMainModule and defined(posix): doAssert AbsoluteDir"/Users/me///" / RelativeFile"z.nim" == AbsoluteFile"/Users/me/z.nim" doAssert relativeTo("/foo/bar.nim", "/foo/") == "bar.nim" + +when isMainModule and defined(windows): + let nasty = string(AbsoluteDir(r"C:\Users\rumpf\projects\nim\tests\nimble\nimbleDir\linkedPkgs\pkgB-#head\../../simplePkgs/pkgB-#head/") / RelativeFile"pkgA/module.nim") + doAssert nasty == r"C:\Users\rumpf\projects\nim\tests\nimble\nimbleDir\simplePkgs\pkgB-#head\pkgA\module.nim" |