mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-01 01:41:01 -08:00
This lets us simplify the logic for how we reset 'eshell-current-command' and 'eshell-last-async-procs', as well as improving correctness of Eshell command forms in a few esoteric scenarios. Additionally, this helps set the stage for better support of background commands in Eshell (bug#66164). * lisp/eshell/esh-cmd.el (eshell-cmd-initialize): Remove addition to 'eshell-post-command-hook'; this is handled in 'eshell-resume-command' and 'eshell-resume-eval' now. (eshell-resume-command): Handle resetting the prompt as needed. (eshell-resume-eval): Use 'unwind-protect' to ensure that we set 'eshell-last-async-procs' and 'eshell-current-comment' at the right times. (eshell-parse-command, eshell-trap-errors, eshell-manipulate): Use 'unwind-protect'. (eshell-do-eval): Allow 'eshell-defer' to pass through 'unwind-protect' forms without actually calling the unwinding forms (yet). * lisp/eshell/esh-proc.el (eshell-kill-process-function) (eshell-reset-after-proc): Make obsolete. The behavior is now handled in 'eshell-resume-command'. (eshell-gather-process-output, eshell-sentinel) (eshell-interrupt-process, eshell-kill-process, eshell-quit-process) (eshell-stop-process, eshell-continue-process): Run 'eshell-kill-hook' directly. * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/throw): New test. |
||
|---|---|---|
| .. | ||
| em-alias-tests.el | ||
| em-basic-tests.el | ||
| em-cmpl-tests.el | ||
| em-dirs-tests.el | ||
| em-extpipe-tests.el | ||
| em-glob-tests.el | ||
| em-hist-tests.el | ||
| em-ls-tests.el | ||
| em-pred-tests.el | ||
| em-prompt-tests.el | ||
| em-script-tests.el | ||
| em-tramp-tests.el | ||
| em-unix-tests.el | ||
| esh-arg-tests.el | ||
| esh-cmd-tests.el | ||
| esh-ext-tests.el | ||
| esh-io-tests.el | ||
| esh-opt-tests.el | ||
| esh-proc-tests.el | ||
| esh-util-tests.el | ||
| esh-var-tests.el | ||
| eshell-tests-helpers.el | ||
| eshell-tests-unload.el | ||
| eshell-tests.el | ||