emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9a6fc63 1/2: Fix problem with relative directories in CDPATH


From: Lars Ingebrigtsen
Subject: master 9a6fc63 1/2: Fix problem with relative directories in CDPATH
Date: Sat, 7 Aug 2021 06:56:06 -0400 (EDT)

branch: master
commit 9a6fc638433c19021278616019ef5064740f86fe
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix problem with relative directories in CDPATH
    
    * lisp/files.el (parse-colon-path): Allow relative directories
    (like ".") in CDPATH (bug#49918).
---
 lisp/files.el            | 5 ++++-
 test/lisp/files-tests.el | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index c260795..b58f90d 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -782,7 +782,10 @@ nil (meaning `default-directory') as the associated list 
element."
     (let ((spath (substitute-env-vars search-path)))
       (mapcar (lambda (f)
                 (if (equal "" f) nil
-                  (let ((dir (expand-file-name (file-name-as-directory f))))
+                  (let ((dir (file-name-as-directory f)))
+                    (when (file-name-absolute-p dir)
+                      ;; Expand "~".
+                      (setq dir (expand-file-name dir)))
                     ;; Previous implementation used `substitute-in-file-name'
                     ;; which collapse multiple "/" in front.  Do the same for
                     ;; backward compatibility.
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index 640f7d8..523f51e 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -1461,7 +1461,10 @@ See <https://debbugs.gnu.org/36401>."
       (should (equal (parse-colon-path "x:/foo//bar/baz")
                      '("x:/foo/bar/baz/")))
     (should (equal (parse-colon-path "/foo//bar/baz")
-                 '("/foo/bar/baz/")))))
+                   '("/foo/bar/baz/"))))
+
+  (should (equal (parse-colon-path ".:/tmp")
+                 '("./" "/tmp/"))))
 
 (ert-deftest files-test-magic-mode-alist-doctype ()
   "Test that DOCTYPE and variants put files in mhtml-mode."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]