]> git.eshelyaron.com Git - emacs.git/commit
Collect all processes in an Eshell pipeline, not just the head and tail
authorJim Porter <jporterbugs@gmail.com>
Mon, 3 Apr 2023 05:41:29 +0000 (22:41 -0700)
committerJim Porter <jporterbugs@gmail.com>
Sun, 10 Sep 2023 17:38:25 +0000 (10:38 -0700)
commitf9667836c4b193d02a375350f4a16e0fe8d8b4f2
tree2765a4ae2ba4933e565255a464683cc560ac76e9
parentdd2438eeaa6a2420383a5e783c7a2d178c64c590
Collect all processes in an Eshell pipeline, not just the head and tail

This has the extra benefit that Eshell now only considers a pipeline
to be done when *all* of its processes are done (previously, it
checked only the last one in the pipeline).

* lisp/eshell/esh-util.el (eshell-process-pair-p)
(eshell-make-process-pair): Rename to...
(eshell-process-list-p, eshell-make-process-list): ... these, and
handle lists of processes.  Update callers.

* lisp/eshell/esh-cmd.el (eshell-head-process): Use 'car'.
(eshell-tail-process): Get the last element of the list.
(eshell-do-pipelines): Return a list of all processes in the pipeline.
(eshell-do-pipelines-synchronously): Return the result of the first
command (usually t or nil).
(eshell-execute-pipeline): Simplify.
(eshell-do-eval): Pass all processes to 'eshell/wait'.
lisp/eshell/esh-cmd.el
lisp/eshell/esh-util.el