aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog19
-rw-r--r--lisp/eshell/em-ls.el29
2 files changed, 33 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bcb7243169..014ed32c26 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,22 @@
+2009-03-21 Eli Zaretskii <[email protected]>
+
+ * eshell/em-ls.el (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/esh-util.el (directory-files-and-attributes): Accept and
+ ignore additional optional argument id-format.
+ (eshell-directory-files-and-attributes): Call
+ directory-files-and-attributes with additional argument id-format.
+
+ * eshell/em-ls.el (eshell-ls-file): Enlarge default size-width to 8.
+ (eshell-ls-dir): Under -l, call eshell-ls-printable-size with last
+ argument nil.
+
2009-03-21 David Reitter <[email protected]>
* cus-start.el (all): Use existing `ns' rather than new `nextstep'
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index ddf3352541..e346806679 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -361,7 +361,7 @@ instead."
"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 @@ whose cdr is the list of file attributes."
(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 @@ relative to that directory."
(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)))