changeset 25194:daf6b641fb0e

(ls-lisp-delete-matching): List argument is now alist of filenames and attributes. (ls-lisp-insert-directory): Use directory-files-and-attributes for speed.
author Geoff Voelker <voelker@cs.washington.edu>
date Fri, 06 Aug 1999 20:41:07 +0000
parents 953155ee541a
children 7b26b165d383
files lisp/ls-lisp.el
diffstat 1 files changed, 6 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ls-lisp.el	Fri Aug 06 20:40:36 1999 +0000
+++ b/lisp/ls-lisp.el	Fri Aug 06 20:41:07 1999 +0000
@@ -134,29 +134,18 @@
 		 (sum 0)
 		 elt
 		 short
-		 (file-list (directory-files dir nil wildcard))
-		 file-alist 
+		 (file-alist (directory-files-and-attributes dir nil wildcard))
 		 (now (current-time))
 		 ;; do all bindings here for speed
 		 file-size
 		 fil attr)
 	    (cond ((memq ?A switches)
-		   (setq file-list
-			 (ls-lisp-delete-matching "^\\.\\.?$" file-list)))
+		   (setq file-alist
+			 (ls-lisp-delete-matching "^\\.\\.?$" file-alist)))
 		  ((not (memq ?a switches))
 		   ;; if neither -A  nor -a, flush . files
-		   (setq file-list
-			 (ls-lisp-delete-matching "^\\." file-list))))
-	    (setq file-alist
-		  (mapcar
-		   (function
-		    (lambda (x)
-		      ;; file-attributes("~bogus") bombs
-		      (cons x (file-attributes (expand-file-name x)))))
-		   ;; inserting the call to directory-files right here
-		   ;; seems to stimulate an Emacs bug
-		   ;; ILLEGAL DATATYPE (#o37777777727) or #o67
-		   file-list))
+		   (setq file-alist
+			 (ls-lisp-delete-matching "^\\." file-alist))))
 	    ;; ``Total'' line (filled in afterwards).
 	    (insert (if (car-safe file-alist)
 			"total \007\n"
@@ -201,7 +190,7 @@
   ;; Should perhaps use setcdr for efficiency.
   (let (result)
     (while list
-      (or (string-match regexp (car list))
+      (or (string-match regexp (car (car list)))
 	  (setq result (cons (car list) result)))
       (setq list (cdr list)))
     result))