(eshell-ls-files): List one per line in a pipeline. (Bug#699)
authorGlenn Morris <rgm@gnu.org>
Fri, 15 Aug 2008 06:52:34 +0000 (06:52 +0000)
committerGlenn Morris <rgm@gnu.org>
Fri, 15 Aug 2008 06:52:34 +0000 (06:52 +0000)
lisp/ChangeLog
lisp/eshell/em-ls.el

index fa43938..96ec3e8 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-15  Glenn Morris  <rgm@gnu.org>
+
+       * eshell/em-ls.el (eshell-ls-files): List one per line in a pipeline.
+       (Bug#699)
+
 2008-08-13  Martin Rudalics  <rudalics@gmx.at>
 
        * emacs-lisp/find-func.el (find-library): Wrap search for
index a31fb26..bdfe664 100644 (file)
@@ -638,7 +638,12 @@ 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.
+  ;; Not really the same since not testing output destination.
+  (if (or (and eshell-in-pipeline-p
+              (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)))