changeset 102678:985635bb2d2c

(eshell-ls-dir): Call eshell-directory-files-and-attributes with additional argument 'integer or 'string, according to numeric-uid-gid. (eshell-ls-file): Don't convert UID and GID to strings, as eshell-ls-dir already did. Enlarge max user-name string length to 14 characters. (eshell-do-ls): Fix the long name of the -L option. (eshell-ls-file): Enlarge default size-width to 8. (eshell-ls-dir): Under -l, call eshell-ls-printable-size with last argument nil.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 21 Mar 2009 14:01:53 +0000
parents d2c2e1206e31
children eed7a048bd37
files lisp/eshell/em-ls.el
diffstat 1 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/eshell/em-ls.el	Sat Mar 21 14:00:26 2009 +0000
+++ b/lisp/eshell/em-ls.el	Sat Mar 21 14:01:53 2009 +0000
@@ -361,7 +361,7 @@
 	 "list entries by lines instead of by columns")
      (?C nil by-columns listing-style
 	 "list entries by columns")
-     (?L "deference" nil dereference-links
+     (?L "dereference" nil dereference-links
 	 "list entries pointed to by symbolic links")
      (?R "recursive" nil show-recursive
 	 "list subdirectories recursively")
@@ -483,25 +483,19 @@
 		(if show-size
 		    (concat (eshell-ls-size-string attrs size-width) " "))
 		(format
-		 "%s%4d %-8s %-8s "
+		 (if numeric-uid-gid
+		     "%s%4d %-8s %-8s "
+		   "%s%4d %-14s %-8s ")
 		 (or (nth 8 attrs) "??????????")
 		 (or (nth 1 attrs) 0)
 		 (or (let ((user (nth 2 attrs)))
-		       (and (not numeric-uid-gid)
-			    user
-			    (eshell-substring
-			     (if (numberp user)
-				 (user-login-name user)
-			       user) 8)))
+		       (and (stringp user)
+			    (eshell-substring user 14)))
 		     (nth 2 attrs)
 		     "")
 		 (or (let ((group (nth 3 attrs)))
-		       (and (not numeric-uid-gid)
-			    group
-			    (eshell-substring
-			     (if (numberp group)
-				 (eshell-group-name group)
-			       group) 8)))
+		       (and (stringp group)
+			    (eshell-substring group 8)))
 		     (nth 3 attrs)
 		     ""))
 		(let* ((str (eshell-ls-printable-size (nth 7 attrs)))
@@ -547,7 +541,12 @@
 	(let ((entries (eshell-directory-files-and-attributes
 			dir nil (and (not show-all)
 				     eshell-ls-exclude-hidden
-				     "\\`[^.]") t)))
+				     "\\`[^.]") t
+				     ;; Asking for UID and GID as
+				     ;; strings saves another syscall
+				     ;; later when we are going to
+				     ;; display user and group names.
+				     (if numeric-uid-gid 'integer 'string))))
 	  (when (and (not show-all) eshell-ls-exclude-regexp)
 	    (while (and entries (string-match eshell-ls-exclude-regexp
 					      (caar entries)))