]> git.eshelyaron.com Git - emacs.git/commit
Use generics to define Eshell output targets
authorJim Porter <jporterbugs@gmail.com>
Sun, 12 Mar 2023 02:44:43 +0000 (18:44 -0800)
committerJim Porter <jporterbugs@gmail.com>
Mon, 21 Aug 2023 18:43:24 +0000 (11:43 -0700)
commitdc0839de9b3654837ec8f5e66d187319b9eecd6f
treeb4c56d0453d9ef7eccd5616a36297df48f5921fc
parent1375cea157bd3f3d5eed93fa86dc591615774794
Use generics to define Eshell output targets

This is more flexible than before, since third-party code can add new
output target types without advising these functions.  It also
resolves an issue where redirecting to a symbol that has a value in
its function slot doesn't work.

* lisp/eshell/esh-io.el (eshell-virtual-target): New struct.
(eshell-get-target, eshell-output-object-to-target): Reimplement via
'cl-defgeneric'.
(eshell-close-target): Reimplement via 'cl-defgeneric' and simplify
'process' method.
lisp/eshell/esh-io.el
test/lisp/eshell/esh-io-tests.el