summary refs log tree commit diff stats
path: root/lib/pure/uri.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/uri.nim')
-rw-r--r--lib/pure/uri.nim10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/pure/uri.nim b/lib/pure/uri.nim
index f0a3796a5..e7db39c10 100644
--- a/lib/pure/uri.nim
+++ b/lib/pure/uri.nim
@@ -264,6 +264,11 @@ proc `/`*(x: Uri, path: string): Uri =
   ##   let bar = parseUri("http://example.com/foo/bar/") / "baz"
   ##   assert bar.path == "/foo/bar/baz"
   result = x
+
+  if result.path.len == 0:
+    result.path = path
+    return
+
   if result.path[result.path.len-1] == '/':
     if path[0] == '/':
       result.path.add(path[1 .. path.len-1])
@@ -442,3 +447,8 @@ when isMainModule:
   # bug #3207
   block:
     doAssert parseUri("http://qq/1").combine(parseUri("https://qqq")).`$` == "https://qqq"
+
+  # bug #4959
+  block:
+    let foo = parseUri("http://example.com") / "/baz"
+    doAssert foo.path == "/baz"