# HG changeset patch # User Geoff Voelker # Date 933972067 0 # Node ID daf6b641fb0e46e672065b66c806e35c41df9072 # Parent 953155ee541a28e069ae78afe1696ce49330d0d4 (ls-lisp-delete-matching): List argument is now alist of filenames and attributes. (ls-lisp-insert-directory): Use directory-files-and-attributes for speed. diff -r 953155ee541a -r daf6b641fb0e lisp/ls-lisp.el --- 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))