summaryrefslogtreecommitdiff
path: root/lisp/eshell/esh-arg.el
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2022-07-09 10:34:31 -0700
committerJim Porter <jporterbugs@gmail.com>2022-09-04 15:15:01 -0700
commit1be925faa1065af5754fc11914b56ae98dfb2a83 (patch)
tree6003dde699588471a1a801705c3ea28bf272ac9f /lisp/eshell/esh-arg.el
parent5af5ed6c6271a452bf37afa0e7349838960d446a (diff)
downloademacs-1be925faa1065af5754fc11914b56ae98dfb2a83.tar.gz
Simplify Eshell handle functions and add tests/documentation
* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Explain how to use 'eshell-finish-arg'. * lisp/eshell/esh-io.el (eshell-create-handles): Only call 'eshell-get-target' for stderr if necessary. (eshell-protect-handles): Use 'dotimes'. (eshell-set-output-handle): Pass HANDLES and fix an edge case with setting a duplicate TARGET. * test/lisp/eshell/eshell-tests-helpers.el (eshell-with-temp-buffer): New macro. * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/quoted-lisp-form) (esh-cmd-test/backquoted-lisp-form) (esh-cmd-test/backquoted-lisp-form/splice): New tests. * test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer) (eshell-test/redirect-buffer-escaped): Move to... * test/lisp/eshell/esh-io-tests.el: ... here, and add other I/O tests. * doc/misc/eshell.texi (Arguments): Add documentation for special argument types. (Input/Output): Expand documentation for redirection and pipelines.
Diffstat (limited to 'lisp/eshell/esh-arg.el')
-rw-r--r--lisp/eshell/esh-arg.el4
1 files changed, 4 insertions, 0 deletions
diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el
index 8e44a88459f..50fb7f5fdc6 100644
--- a/lisp/eshell/esh-arg.el
+++ b/lisp/eshell/esh-arg.el
@@ -147,6 +147,10 @@ return the result of the parse as a sexp. It is also responsible for
moving the point forward to reflect the amount of input text that was
parsed.
+If the hook determines that it has reached the end of an argument, it
+should call `eshell-finish-arg' to complete processing of the current
+argument and proceed to the next.
+
If no function handles the current character at point, it will be
treated as a literal character."
:type 'hook