emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 3431e82: Ignore directory symlinks in directory-fil


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 3431e82: Ignore directory symlinks in directory-files-recursively
Date: Fri, 12 Dec 2014 10:53:05 +0000

branch: master
commit 3431e82d16af3d5130f0218efd5fafaa797ed28a
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    Ignore directory symlinks in directory-files-recursively
    
    * files.el (directory-files-recursively): Don't follow symlinks to
    other directories.
---
 lisp/ChangeLog |    5 +++++
 lisp/files.el  |   12 ++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 75effaa..0410b22 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-12  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * files.el (directory-files-recursively): Don't follow symlinks to
+       other directories.
+
 2014-12-12  Eric S. Raymond  <address@hidden>
 
        * vc/vc-dav.el, vc/vc-git.el, vc/vc-hg.el, vc/vc-src.el,
diff --git a/lisp/files.el b/lisp/files.el
index 568c1bb..40972d4 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -772,15 +772,15 @@ If INCLUDE-DIRECTORIES, also include directories that 
have matching names."
                        'string<))
       (unless (member file '("./" "../"))
        (if (= (aref file (1- (length file))) ?/)
-           (progn
-             (setq result (nconc result (directory-files-recursively
-                                         (expand-file-name file dir)
-                                         match include-directories)))
+           (let ((path (expand-file-name file dir)))
+             ;; Don't follow symlinks to other directories.
+             (unless (file-symlink-p path)
+               (setq result (nconc result (directory-files-recursively
+                                           path match include-directories))))
              (when (and include-directories
                         (string-match match
                                       (substring file 0 (1- (length file)))))
-               (setq result (nconc result (list
-                                           (expand-file-name file dir))))))
+               (setq result (nconc result (list path)))))
          (when (string-match match file)
            (push (expand-file-name file dir) files)))))
     (nconc result (nreverse files))))



reply via email to

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