diff options
author | flywind <xzsflywind@gmail.com> | 2021-03-30 02:48:06 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-29 11:48:06 -0700 |
commit | 1f1ef85eb0980f2e1077638a502c0754c3e2b80d (patch) | |
tree | 08405a26a0ae31aa7c8f1970ac7c0f8d60ce3860 | |
parent | 861c42c258ee81ff20630fdaa49813de5311881d (diff) | |
download | Nim-1f1ef85eb0980f2e1077638a502c0754c3e2b80d.tar.gz |
[std/uri]fix #17481 (#17568)
-rw-r--r-- | lib/pure/uri.nim | 2 | ||||
-rw-r--r-- | tests/stdlib/turi.nim | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/pure/uri.nim b/lib/pure/uri.nim index 920529ecf..4ac04d02e 100644 --- a/lib/pure/uri.nim +++ b/lib/pure/uri.nim @@ -294,7 +294,7 @@ func parseUri*(uri: string, result: var Uri) = var i = 0 # Check if this is a reference URI (relative URI) - let doubleSlash = uri.len > 1 and uri[1] == '/' + let doubleSlash = uri.len > 1 and uri[0] == '/' and uri[1] == '/' if i < uri.len and uri[i] == '/': # Make sure `uri` doesn't begin with '//'. if not doubleSlash: diff --git a/tests/stdlib/turi.nim b/tests/stdlib/turi.nim index 1a6f37520..d1a30bbfc 100644 --- a/tests/stdlib/turi.nim +++ b/tests/stdlib/turi.nim @@ -283,5 +283,16 @@ template main() = doAssert toSeq(decodeQuery("a=1&b=0")) == @[("a", "1"), ("b", "0")] doAssert toSeq(decodeQuery("a=1&b=2c=6")) == @[("a", "1"), ("b", "2c=6")] + block: # bug #17481 + let u1 = parseUri("./") + let u2 = parseUri("./path") + let u3 = parseUri("a/path") + doAssert u1.scheme.len == 0 + doAssert u1.path == "./" + doAssert u2.scheme.len == 0 + doAssert u2.path == "./path" + doAssert u3.scheme.len == 0 + doAssert u3.path == "a/path" + static: main() main() |