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))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;