diff options
author | Glenn Morris <rgm@gnu.org> | 2008-08-15 06:55:43 +0000 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2008-08-15 06:55:43 +0000 |
commit | b7e9b5b0c8c114f3416d21f8e7632fcd78afe551 (patch) | |
tree | 5c047c2e4b481aa55f7470d0e54e56a775bf0cb5 /lisp/eshell/em-ls.el | |
parent | 3fe3fd2c6db8c97243f52aba2c10b547fdeb60a8 (diff) | |
download | emacs-b7e9b5b0c8c114f3416d21f8e7632fcd78afe551.tar.gz |
(eshell-ls-files): List one per line in a pipeline, unless at the end
of the pipeline. (Bug#699).
Diffstat (limited to 'lisp/eshell/em-ls.el')
-rw-r--r-- | lisp/eshell/em-ls.el | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index db256bd8c9d..eb3389ce7cf 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el @@ -635,7 +635,14 @@ In Eshell's implementation of ls, ENTRIES is always reversed." "Output a list of FILES. Each member of FILES is either a string or a cons cell of the form \(FILE . ATTRS)." - (if (memq listing-style '(long-listing single-column)) + ;; Mimic behavior of coreutils ls, which lists a single file per + ;; line when output is not a tty. Exceptions: if -x was supplied, + ;; or if we are the _last_ command in a pipeline. + ;; FIXME Not really the same since not testing output destination. + (if (or (and eshell-in-pipeline-p + (not (eq eshell-in-pipeline-p 'last)) + (not (eq listing-style 'by-lines))) + (memq listing-style '(long-listing single-column))) (eshell-for file files (if file (eshell-ls-file file size-width copy-fileinfo))) |