]> git.eshelyaron.com Git - emacs.git/commitdiff
(eshell-ls-files): List one per line in a pipeline, unless at the end
authorGlenn Morris <rgm@gnu.org>
Fri, 15 Aug 2008 06:55:43 +0000 (06:55 +0000)
committerGlenn Morris <rgm@gnu.org>
Fri, 15 Aug 2008 06:55:43 +0000 (06:55 +0000)
of the pipeline.  (Bug#699).

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

index db9af12b7e66afba5af614cb7613aefe8b5f3119..611b616d42a1a18b122de03aca1280dc84477655 100644 (file)
@@ -1,3 +1,10 @@
+2008-08-15  Glenn Morris  <rgm@gnu.org>
+
+       * eshell/esh-cmd.el (eshell-do-pipelines): Indicate the last command in
+       a pipeline.
+       * eshell/em-ls.el (eshell-ls-files): List one per line in a pipeline,
+       unless at the end of the pipeline.  (Bug#699).
+
 2008-08-14  Chong Yidong  <cyd@stupidchicken.com>
 
        * minibuffer.el (completion-boundaries): Doc fix.
index db256bd8c9d5f7b80e41c25fa68aa11bbb18f639..eb3389ce7cfa025647a5f2c140218092c2aa8f60 100644 (file)
@@ -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)))