summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--stdlib/copy-file.tl5
-rw-r--r--tests/018/path-equal.tl5
2 files changed, 5 insertions, 5 deletions
diff --git a/stdlib/copy-file.tl b/stdlib/copy-file.tl
index 5c87b10f..258192fc 100644
--- a/stdlib/copy-file.tl
+++ b/stdlib/copy-file.tl
@@ -214,10 +214,11 @@
(utimes s 0 nil 0 t))))
(defun path-simplify (comp)
- (let (out)
+ (let ((abs (equal (car comp) ""))
+ out)
(each ((c comp))
(casequal c
- (".." (if (and out (nequal (car out) ".."))
+ (".." (if (and (or out abs) (nequal (car out) ".."))
(pop out)
(push c out)))
(("." ""))
diff --git a/tests/018/path-equal.tl b/tests/018/path-equal.tl
index cf1fbb63..704c414a 100644
--- a/tests/018/path-equal.tl
+++ b/tests/018/path-equal.tl
@@ -13,6 +13,5 @@
(path-equal "a" "a/././.") t
(path-equal "a/." "a/././.") t
- ;;(path-equal "/.." "/") t
- ;;(path-equal "/../a" "/a/") t
- )
+ (path-equal "/.." "/") t
+ (path-equal "/../a" "/a/") t)