Fix to uid/gid format in eshell's ls (Bug#5528).

* eshell/esh-util.el (eshell-file-attributes): New optional arg
ID-FORMAT.  Pass it to `file-attributes'.

* eshell/em-ls.el (eshell-do-ls): Use it (Bug#5528).
This commit is contained in:
Chong Yidong 2010-02-07 01:23:10 -05:00
parent c917476d6b
commit a4cc44cf0e
3 changed files with 21 additions and 11 deletions

View file

@ -1,3 +1,10 @@
2010-02-07 Chong Yidong <cyd@stupidchicken.com>
* eshell/esh-util.el (eshell-file-attributes): New optional arg
ID-FORMAT. Pass it to `file-attributes'.
* eshell/em-ls.el (eshell-do-ls): Use it (Bug#5528).
2010-02-07 sj <prime.wizard+emacs@gmail.com> (tiny change)
* faces.el (set-face-attribute): Allow calling

View file

@ -393,13 +393,13 @@ Sort entries alphabetically across.")
(eshell-glob-regexp ignore-pattern))))
;; list the files!
(eshell-ls-entries
(mapcar (function
(lambda (arg)
(cons (if (and (eshell-under-windows-p)
(file-name-absolute-p arg))
(expand-file-name arg)
arg)
(eshell-file-attributes arg))))
(mapcar (lambda (arg)
(cons (if (and (eshell-under-windows-p)
(file-name-absolute-p arg))
(expand-file-name arg)
arg)
(eshell-file-attributes
arg (if numeric-uid-gid 'integer 'string))))
args)
t (expand-file-name default-directory)))
(funcall flush-func)))
@ -710,7 +710,7 @@ Each member of FILES is either a string or a cons cell of the form
(funcall insert-func need-return "\n"))))))
(defun eshell-ls-entries (entries &optional separate root-dir)
"Output PATH's directory ENTRIES, formatted according to OPTIONS.
"Output PATH's directory ENTRIES.
Each member of ENTRIES may either be a string or a cons cell, the car
of which is the file name, and the cdr of which is the list of
attributes.

View file

@ -701,8 +701,11 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
(forward-line)))
entry))
(defun eshell-file-attributes (file)
"Return the attributes of FILE, playing tricks if it's over ange-ftp."
(defun eshell-file-attributes (file &optional id-format)
"Return the attributes of FILE, playing tricks if it's over ange-ftp.
The optional argument ID-FORMAT specifies the preferred uid and
gid format. Valid values are 'string and 'integer, defaulting to
'integer. See `file-attributes'."
(let* ((file (expand-file-name file))
entry)
(if (string-equal (file-remote-p file 'method) "ftp")
@ -723,7 +726,7 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
(setq entry (cdr fentry))
(setq entry nil)))))
entry)
(file-attributes file))))
(file-attributes file id-format))))
(defalias 'eshell-copy-tree 'copy-tree)