From: Daniel Pittman Date: Wed, 5 Sep 2018 13:44:58 +0000 (-0400) Subject: Add support in emacsclient for EMACS_SOCKET_NAME X-Git-Tag: emacs-27.0.90~4250 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3e81e9a0e7742197354515f3d3ea55fdb201eb29;p=emacs.git Add support in emacsclient for EMACS_SOCKET_NAME If the '--socket-name' argument is unspecified, the environment variable 'EMACS_SOCKET_NAME' is now consulted with the same semantics. This mirrors the behavior of the '--server-file' argument, and allows for easier configuration of emacsclient when the socket is in a location other than 'TMPDIR' or '/tmp'. * emacsclient.c (set_socket): Add support for the EMACS_SOCKET_NAME environment variable. (Bug#33095) * misc.texi (emacsclient Options): * emacsclient.1: Document the EMACS_SOCKET_NAME environment variable. * etc/NEWS: Announce the new feature. Copyright-paperwork-exempt: yes --- diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 236cb07785c..ab33cafb8e8 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1966,6 +1966,10 @@ is given by the variable @code{server-name} on the Emacs server. If this option is omitted, @command{emacsclient} connects to the first server it finds. (This option is not supported on MS-Windows.) +Alternatively, you can set the @env{EMACS_SOCKET_NAME} environment +variable to point to the server socket. (The command-line option +overrides the environment variable.) + @item -t @itemx --tty @itemx -nw diff --git a/doc/man/emacsclient.1 b/doc/man/emacsclient.1 index 5aaa6d1f083..24ca1c9a468 100644 --- a/doc/man/emacsclient.1 +++ b/doc/man/emacsclient.1 @@ -94,6 +94,7 @@ open a new Emacs frame on the current terminal .TP .B \-s, \-\-socket-name=FILENAME use socket named FILENAME for communication. +This can also be specified via the EMACS_SOCKET_NAME environment variable. .TP .B \-V, \-\-version print version information and exit diff --git a/etc/NEWS b/etc/NEWS index 2249aa48ab8..be32ac6b9bb 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -119,6 +119,12 @@ the new version of the file again.) * Changes in Emacs 27.1 ++++ +** emacsclient uses EMACS_SOCKET_NAME if --socket-name is not set. +The behavior is identical to the EMACS_SERVER_FILE, in that the +command line value will override the environment, and the natural +default to TMPDIR, then /tmp, continues to apply. + +++ ** The function 'read-passwd' uses '*' as default character to hide passwords. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 4fe3a588b19..42b8dd6227b 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1409,6 +1409,9 @@ set_socket (int no_exit_if_error) #ifndef NO_SOCKETS_IN_FILE_SYSTEM /* Explicit --socket-name argument. */ + if (!socket_name) + socket_name = egetenv ("EMACS_SOCKET_NAME"); + if (socket_name) { s = set_local_socket (socket_name);