]> git.eshelyaron.com Git - emacs.git/commit
Add 'server-eval-args-left' to server.el
authorSpencer Baugh <sbaugh@catern.com>
Fri, 22 Sep 2023 01:35:50 +0000 (21:35 -0400)
committerEli Zaretskii <eliz@gnu.org>
Sun, 29 Oct 2023 12:10:23 +0000 (14:10 +0200)
commit683efb8de5ac3a2ba5ecc073d8c912ec6a61191d
tree7dbcdda2792a34b22fb19f1c36568e5329442bdd
parentf3a27180b7b22e8220f9d92d91ece835545da4aa
Add 'server-eval-args-left' to server.el

Passing arbitrary arguments to functions through
"emacsclient --eval" sometimes requires complicated escaping
to avoid them being parsed as Lisp (as seen in
emacsclient-mail.desktop before this change).

The new variable 'server-eval-args-left' allows access to the
arguments before they are parsed as Lisp.  By removing
arguments from the variable before they're parsed, a snippet
of Lisp can consume arguments, as in emacsclient-mail.desktop.

org-protocol might be able to use this as well, which might allow it
to drop its current advice on server-visit-files.

* etc/emacsclient-mail.desktop: Use 'server-eval-args-left'.
* lisp/server.el (server-eval-args-left): New variable.
(server-process-filter, server-execute): Make '-eval' arguments
available through 'server-eval-args-left'.
* lisp/startup.el (argv): Mention 'server-eval-args-left' in
docstring.
* etc/NEWS: Announce 'server-eval-args-left'.
* doc/emacs/misc.texi (emacsclient Options): Document
'server-eval-args-left'.  (Bug#65902)
doc/emacs/misc.texi
etc/NEWS
etc/emacsclient-mail.desktop
lisp/server.el
lisp/startup.el