Files
emacs/lisp
Jim Porter cde38f0df3 Avoid parsing some Eshell forms when performing completion
During completion, we want to evaluate most Eshell forms
(e.g. variable references), but skip others (e.g. globbing,
subcommands).  For globbing, we want to pass the literal glob to
Pcomplete so it can use the glob for selecting completion candidates.
For subcommands (including Lisp forms), we especially want to avoid
evaluation, since they can produce arbitary side effects!  (Bug#50470)

* lisp/eshell/esh-cmd.el (eshell-allow-commands): New variable...
(eshell-commands-forbidden): New error...
(eshell-named-command, eshell-lisp-command): ... use them.

* lisp/eshell/em-cmpl.el (eshell-complete--eval-argument-form):
Disallow command forms and handle errors ourselves.
(eshell-complete-parse-arguments): Don't parse glob characters.

* test/lisp/eshell/em-cmpl-tests.el
(em-cmpl-test/parse-arguments/unevaluated-subcommand)
(em-cmpl-test/parse-arguments/unevaluated-lisp-form)
(em-cmpl-test/parse-arguments/unevaluated-inner-subcommand)
(em-cmpl-test/file-completion/glob, em-cmpl-test/command-completion)
(em-cmpl-test/subcommand-completion): New tests.
(em-cmpl-test/parse-arguments/pipeline): Remove superfluous
let-binding.
(em-cmpl-test/file-completion/after-list): Use a list variable rather
than a subexpression; the latter is no longer evaluated during
completion.
(em-cmpl-test/lisp-function-completion): Check "$(func)" syntax.
2023-03-28 12:03:29 -07:00
..
2023-01-06 06:30:10 +01:00
2023-02-23 16:05:02 +01:00
2023-03-03 13:49:18 -08:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-19 11:38:09 +01:00
2023-01-23 01:34:39 +01:00
2023-03-27 17:16:58 -04:00
2023-01-01 05:31:12 -05:00
2023-03-26 17:01:30 -04:00
2023-01-01 05:31:12 -05:00
2023-03-27 17:16:59 -04:00
2023-01-01 05:31:12 -05:00
2023-03-08 06:30:18 +01:00
2023-03-20 06:30:39 +01:00
2023-01-17 06:30:08 +01:00
2023-03-01 06:30:20 +01:00
2023-03-20 06:30:32 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-03 06:30:24 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-02-24 06:30:11 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-03 18:03:18 +01:00
2023-03-09 12:04:52 +02:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-02-17 16:20:45 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-03-05 06:30:15 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-03-27 17:16:58 -04:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-18 10:58:00 +02:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-05 18:52:59 +02:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-03-20 09:47:32 +01:00
2023-03-15 05:12:01 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-03-02 20:45:02 +08:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-18 10:45:46 +01:00
2023-01-01 05:31:12 -05:00
2023-03-27 17:16:59 -04:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-02-03 06:30:24 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:47:47 -05:00
2023-01-01 05:31:12 -05:00
2023-01-06 10:06:25 +01:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-03-27 17:16:59 -04:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00
2023-01-01 05:31:12 -05:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.