summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2024-07-16 22:07:33 -0700
committerJim Porter <jporterbugs@gmail.com>2024-07-18 11:10:04 -0700
commit1550213613b397da6e879cc0d00ede916f6c62cc (patch)
tree0bfddf96aee623529bfba60790adb3b28449af0d /lisp/emacs-lisp
parent76874df05f7758deb4f47b7df278e54a66456fc9 (diff)
downloademacs-1550213613b397da6e879cc0d00ede916f6c62cc.tar.gz
emacs-1550213613b397da6e879cc0d00ede916f6c62cc.tar.bz2
emacs-1550213613b397da6e879cc0d00ede916f6c62cc.zip
Improve handling of deferrable Eshell commands
Now, we use the 'eshell-deferrable' wrapper to wrap a form that returns a process (or list thereof). This improves upon the old method, which failed to handle 'eshell-replace-command' correctly. In that case, Eshell would fail to unmark commands as deferrable when necessary (e.g. for commands in pipelines). * lisp/eshell/esh-cmd.el (eshell-deferrable-commands): Make into a defvar. (eshell-deferrable): New function... (eshell-structure-basic-command): ... use it. (eshell-trap-errors): Rename to... (eshell-do-command): ... this, and use 'eshell-deferrable'. Update callers. (eshell--unmark-deferrable): Remove. Update callers. (eshell-execute-pipeline): Remove 'eshell-process-identity'. (eshell-process-identity, eshell-named-command*, eshell-lisp-command*): Make obsolete. * test/lisp/eshell/esh-cmd-tests.el (eshell-test-replace-command): New function. (esh-cmd-test/pipeline/replace-command): New test.
Diffstat (limited to 'lisp/emacs-lisp')
0 files changed, 0 insertions, 0 deletions