From 6ccf4e55ee05c998a0168cc58af728b046df5755 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 20 Oct 2021 21:54:57 -0700 Subject: path-equal: enable and fix failing tests. * stdlib/copy-file.tl (path-simplify): If the incoming path's first component is "", it is absolute; in that case swallow any components that go above. * tests/018/path-equal.tl: Uncomment two previously failing tests. --- stdlib/copy-file.tl | 5 +++-- tests/018/path-equal.tl | 5 ++--- 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) -- cgit v1.2.3