diff options
Diffstat (limited to 'lisp/eshell/esh-cmd.el')
-rw-r--r-- | lisp/eshell/esh-cmd.el | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index e0348ba5013..f1cf9336899 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -304,10 +304,9 @@ otherwise t.") ;; situation can occur, for example, if a Lisp function results in ;; `debug' being called, and the user then types \\[top-level] (add-hook 'eshell-post-command-hook - (function - (lambda () - (setq eshell-current-command nil - eshell-last-async-proc nil))) + (lambda () + (setq eshell-current-command nil + eshell-last-async-proc nil)) nil t) (add-hook 'eshell-parse-argument-hook @@ -355,18 +354,17 @@ hooks should be run before and after the command." args)) (commands (mapcar - (function - (lambda (cmd) - (setq cmd - (if (or (not (car eshell--sep-terms)) - (string= (car eshell--sep-terms) ";")) - (eshell-parse-pipeline cmd) - `(eshell-do-subjob - (list ,(eshell-parse-pipeline cmd))))) - (setq eshell--sep-terms (cdr eshell--sep-terms)) - (if eshell-in-pipeline-p - cmd - `(eshell-trap-errors ,cmd)))) + (lambda (cmd) + (setq cmd + (if (or (not (car eshell--sep-terms)) + (string= (car eshell--sep-terms) ";")) + (eshell-parse-pipeline cmd) + `(eshell-do-subjob + (list ,(eshell-parse-pipeline cmd))))) + (setq eshell--sep-terms (cdr eshell--sep-terms)) + (if eshell-in-pipeline-p + cmd + `(eshell-trap-errors ,cmd))) (eshell-separate-commands terms "[&;]" nil 'eshell--sep-terms)))) (let ((cmd commands)) (while cmd |