changeset 107103:f2353518b994

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).
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 07 Feb 2010 01:23:10 -0500
parents 3554839df1fc
children c984638f1446
files lisp/ChangeLog lisp/eshell/em-ls.el lisp/eshell/esh-util.el
diffstat 3 files changed, 21 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Feb 06 23:14:26 2010 -0500
+++ b/lisp/ChangeLog	Sun Feb 07 01:23:10 2010 -0500
@@ -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
--- a/lisp/eshell/em-ls.el	Sat Feb 06 23:14:26 2010 -0500
+++ b/lisp/eshell/em-ls.el	Sun Feb 07 01:23:10 2010 -0500
@@ -393,13 +393,13 @@
 	       (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 @@
 	    (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.
--- a/lisp/eshell/esh-util.el	Sat Feb 06 23:14:26 2010 -0500
+++ b/lisp/eshell/esh-util.el	Sun Feb 07 01:23:10 2010 -0500
@@ -701,8 +701,11 @@
 	(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 @@
 		      (setq entry (cdr fentry))
 		    (setq entry nil)))))
 	  entry)
-      (file-attributes file))))
+      (file-attributes file id-format))))
 
 (defalias 'eshell-copy-tree 'copy-tree)