Mercurial > emacs
changeset 33710:bec245584796
(find-lisp-find-files-internal):
Use dolist, when and file-name-as-directory.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 21 Nov 2000 22:07:43 +0000 |
parents | bfee926318b1 |
children | dc1ebf25e048 |
files | lisp/find-lisp.el |
diffstat | 1 files changed, 21 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/find-lisp.el Tue Nov 21 21:47:25 2000 +0000 +++ b/lisp/find-lisp.el Tue Nov 21 22:07:43 2000 +0000 @@ -119,8 +119,7 @@ "Find files in DIRECTORY which match REGEXP." (let ((file-predicate 'find-lisp-default-file-predicate) (directory-predicate 'find-lisp-default-directory-predicate) - (find-lisp-regexp regexp) - ) + (find-lisp-regexp regexp)) (find-lisp-find-files-internal directory file-predicate @@ -135,34 +134,28 @@ DIRECTORY-PREDICATE is used to decide whether to descend into directories. It is a function which takes two arguments, the directory and its parent." - (or (string-match "/$" directory) - (setq directory (concat directory "/"))) + (setq directory (file-name-as-directory directory)) (let (results sub-results) - (mapcar - (function - (lambda(file) - (let ((fullname (expand-file-name file directory))) - (and (file-readable-p (expand-file-name file directory)) + (dolist (file (directory-files directory nil nil t)) + (let ((fullname (expand-file-name file directory))) + (when (file-readable-p (expand-file-name file directory)) + ;; If a directory, check it we should descend into it + (and (file-directory-p fullname) + (funcall directory-predicate file directory) (progn - ;; If a directory, check it we should descend into it - (and (file-directory-p fullname) - (funcall directory-predicate file directory) - (progn - (setq sub-results - (find-lisp-find-files-internal - fullname - file-predicate - directory-predicate)) - (if results - (nconc results sub-results) - (setq results sub-results)))) - ;; For all files and directories, call the file predicate - (and (funcall file-predicate file directory) - (if results - (nconc results (list fullname)) - (setq results (list fullname)))) - ))))) - (directory-files directory nil nil t)) + (setq sub-results + (find-lisp-find-files-internal + fullname + file-predicate + directory-predicate)) + (if results + (nconc results sub-results) + (setq results sub-results)))) + ;; For all files and directories, call the file predicate + (and (funcall file-predicate file directory) + (if results + (nconc results (list fullname)) + (setq results (list fullname))))))) results)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;