;; Author: Peter Breton
;; Created: Fri Mar 26 1999
;; Keywords: unix
-;; Time-stamp: <2001-07-16 12:42:35 pavel>
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;;; Code:
+(require 'dired)
+
+(defvar dired-buffers)
+(defvar dired-subdir-alist)
+
;; Internal variables
(defvar find-lisp-regexp nil
(string= dir "..")
;; Skip directories which are symlinks
;; Easy way to circumvent recursive loops
- (file-symlink-p dir))))
+ (file-symlink-p (expand-file-name dir parent)))))
(defun find-lisp-default-file-predicate (file dir)
"True if FILE matches `find-lisp-regexp'.
(regexp find-lisp-regexp))
;; Expand DIR ("" means default-directory), and make sure it has a
;; trailing slash.
- (setq dir (abbreviate-file-name
- (file-name-as-directory (expand-file-name dir))))
+ (setq dir (file-name-as-directory (expand-file-name dir)))
;; Check that it's really a directory.
(or (file-directory-p dir)
(error "find-dired needs a directory: %s" dir))
;; No analog for find-lisp?
(insert find-lisp-line-indent "\n")
;; Run the find function
- (mapcar
+ (mapc
(function
(lambda(file)
(find-lisp-find-dired-insert-file
(defun find-lisp-find-dired-insert-file (file buffer)
(set-buffer buffer)
(insert find-lisp-line-indent
- (find-lisp-format file (file-attributes file) (list "")
+ (find-lisp-format file (file-attributes file 'string) (list "")
(current-time))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (memq ?s switches) ; size in K
(format "%4d " (1+ (/ (nth 7 file-attr) 1024))))
(nth 8 file-attr) ; permission bits
- ;; numeric uid/gid are more confusing than helpful
- ;; Emacs should be able to make strings of them.
- ;; user-login-name and user-full-name could take an
- ;; optional arg.
(format " %3d %-8s %-8s %8d "
(nth 1 file-attr) ; no. of links
- (if (= (user-uid) (nth 2 file-attr))
- (user-login-name)
- (int-to-string (nth 2 file-attr))) ; uid
+ (if (numberp (nth 2 file-attr))
+ (int-to-string (nth 2 file-attr))
+ (nth 2 file-attr)) ; uid
(if (eq system-type 'ms-dos)
"root" ; everything is root on MSDOS.
- (int-to-string (nth 3 file-attr))) ; gid
+ (if (numberp (nth 3 file-attr))
+ (int-to-string (nth 3 file-attr))
+ (nth 3 file-attr))) ; gid
(nth 7 file-attr) ; size in bytes
)
(find-lisp-format-time file-attr switches now)
(provide 'find-lisp)
-;; Local Variables:
-;; autocompile: t
-;; End:
-
;;; arch-tag: a711374c-f12a-46f6-aa18-ba7d77b9602a
;;; find-lisp.el ends here