summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/debug.el
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2024-10-04 21:45:04 -0700
committerJim Porter <jporterbugs@gmail.com>2024-10-16 21:48:35 -0700
commit40ffacb34b194aa82273539ab7a5be2f485a706f (patch)
tree819b868c6ca824fe32f6c404fc0311c631a8801c /lisp/emacs-lisp/debug.el
parentaf029cdb3a69ba67ae88c9e93b7564778c61a3c6 (diff)
downloademacs-40ffacb34b194aa82273539ab7a5be2f485a706f.tar.gz
emacs-40ffacb34b194aa82273539ab7a5be2f485a706f.tar.bz2
emacs-40ffacb34b194aa82273539ab7a5be2f485a706f.zip
Improve correctness of Eshell sub-forms
This makes sure that we treat Eshell sub-forms (whether Lisp or command forms) as values when appropriate, or as regular invocations. This requires a bit more explicit work, but helps to resolve some of the surprising differences between Lisp and command forms in complex Eshell statements. * lisp/eshell/esh-cmd.el (eshell-subcommand-arg-values): Make obsolete. (eshell-parse-lisp-argument): Don't add 'eshell-command-to-value' here. (eshell-rewrite-sexp-command): Don't check for 'eshell-command-to-value here'; instead check for 'eshell-lisp-command'. (eshell-structure-basic-command): Check for 'eshell-lisp-command'. (eshell-term-as-value): New function... (eshell-rewrite-named-command, eshell-rewrite-for-command): ... call it. * lisp/eshell/esh-arg.el (eshell-parse-special-reference): * lisp/eshell/esh-io.el (eshell-strip-redirections): * lisp/eshell/esh-var.el (eshell-prepare-indices): Call 'eshell-term-as-value'. * test/lisp/eshell/esh-arg-tests.el (esh-arg-test/special-reference/command-form): * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-lisp-body) (esh-cmd-test/while-loop-lisp-body) (esh-cmd-test/if-else-statement-lisp-body): New tests. * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices-subcommand): Add another command to test. * doc/misc/eshell.texi (Control Flow): Update documentation.
Diffstat (limited to 'lisp/emacs-lisp/debug.el')
0 files changed, 0 insertions, 0 deletions