Fix to uid/gid format in eshell's ls (Bug#5528).
authorChong Yidong <cyd@stupidchicken.com>
Sun, 7 Feb 2010 06:23:10 +0000 (01:23 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 7 Feb 2010 06:23:10 +0000 (01:23 -0500)
* 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).

lisp/ChangeLog
lisp/eshell/em-ls.el
lisp/eshell/esh-util.el

index f754ca0..d81e73f 100644 (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
index 094f3ad..9b008ce 100644 (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.
index 7c21e2e..1a4c5e1 100644 (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)