mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 09:14:18 +00:00
Revert "Extend emacs server protocol for empty arguments"
This reverts this change:
Author: Andreas Schwab <schwab@linux-m68k.org>
AuthorDate: Sun Feb 8 12:34:02 2026 +0100
Extend emacs server protocol for empty arguments
An empty argument is represented by &0. On the receiving side, &0 is
replaced by nothing.
* lisp/server.el (server-unquote-arg): Replace "&0" by nothing.
(server-quote-arg): Produce "&0" for an empty string.
* lib-src/emacsclient.c (quote_argument): Produce "&0" for an
empty string.
(unquote_argument): Replace "&0" by nothing. (Bug#80356)
The bug in question was already fixed by this change:
Author: Sean Whitton <spwhitton@spwhitton.name>
AuthorDate: Fri Nov 7 12:33:21 2025 +0000
Don't discard empty string arguments from emacsclient
* lisp/server.el (server--process-filter-1): Don't discard empty
string arguments from emacsclient.
(server-eval-args-left):
* doc/emacs/misc.texi (emacsclient Options):
* etc/NEWS: Document the change.
This commit is contained in:
parent
01d8abea04
commit
7fd6fa4a8b
2 changed files with 9 additions and 17 deletions
|
|
@ -867,10 +867,8 @@ send_to_emacs (HSOCKET s, const char *data)
|
|||
static void
|
||||
quote_argument (HSOCKET s, const char *str)
|
||||
{
|
||||
char *copy = xmalloc (strlen (str) * 2 + 3);
|
||||
char *copy = xmalloc (strlen (str) * 2 + 1);
|
||||
char *q = copy;
|
||||
if (*str == '\0')
|
||||
*q++ = '&', *q++ = '0';
|
||||
if (*str == '-')
|
||||
*q++ = '&', *q++ = *str++;
|
||||
for (; *str; str++)
|
||||
|
|
@ -912,8 +910,6 @@ unquote_argument (char *str)
|
|||
c = ' ';
|
||||
else if (c == 'n')
|
||||
c = '\n';
|
||||
else if (c == '0')
|
||||
continue;
|
||||
}
|
||||
*q++ = c;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -531,7 +531,6 @@ See `server-quote-arg' and `server-process-filter'."
|
|||
(?& "&")
|
||||
(?- "-")
|
||||
(?n "\n")
|
||||
(?0 "")
|
||||
(_ " ")))
|
||||
arg t t))
|
||||
|
||||
|
|
@ -539,19 +538,16 @@ See `server-quote-arg' and `server-process-filter'."
|
|||
"In ARG, insert a & before each &, each space, each newline, and -.
|
||||
Change spaces to underscores, too, so that the return value never
|
||||
contains a space.
|
||||
An empty ARG is represented by &0.
|
||||
|
||||
See `server-unquote-arg' and `server-process-filter'."
|
||||
(if (equal arg "")
|
||||
"&0"
|
||||
(replace-regexp-in-string
|
||||
"[-&\n ]" (lambda (s)
|
||||
(pcase (aref s 0)
|
||||
(?& "&&")
|
||||
(?- "&-")
|
||||
(?\n "&n")
|
||||
(?\s "&_")))
|
||||
arg t t)))
|
||||
(replace-regexp-in-string
|
||||
"[-&\n ]" (lambda (s)
|
||||
(pcase (aref s 0)
|
||||
(?& "&&")
|
||||
(?- "&-")
|
||||
(?\n "&n")
|
||||
(?\s "&_")))
|
||||
arg t t))
|
||||
|
||||
(defun server-send-string (proc string)
|
||||
"A wrapper around `process-send-string' for logging."
|
||||
|
|
|
|||
Loading…
Reference in a new issue