; Improve recent change to deferred evaluation in Eshell

* lisp/eshell/esh-cmd.el (eshell-do-eval): Move active check later.
This commit is contained in:
Jim Porter 2024-05-29 17:27:01 -07:00
parent 69a9fdd6bb
commit 6a0f4d333a

View file

@ -1282,14 +1282,13 @@ have been replaced by constants."
(setcdr form (cdr new-form)))
(eshell-do-eval form synchronous-p))
(if-let (((memq (car form) eshell-deferrable-commands))
(procs (eshell-make-process-list result))
(active (seq-some #'eshell-process-active-p procs)))
(procs (eshell-make-process-list result)))
(if synchronous-p
(apply #'eshell/wait procs)
(eshell-manipulate form "inserting ignore form"
(setcar form 'ignore)
(setcdr form nil))
(when active
(when (seq-some #'eshell-process-active-p procs)
(throw 'eshell-defer procs)))
(list 'quote result))))))))))))