From: Eli Zaretskii Date: Sat, 19 Nov 2022 19:34:07 +0000 (+0200) Subject: Fix encoding and display of messages sent by server to emacsclient X-Git-Tag: emacs-29.0.90~1616^2~23 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1682bd18f50ed2095b2162207603c6b8a3f0225f;p=emacs.git Fix encoding and display of messages sent by server to emacsclient * lisp/server.el (server-start): Use 'locale-coding-system' to encode messages sent back to the client. * lib-src/emacsclient.c (main): Print '-error' messages via 'message', not directly via 'fprintf'. This shows the error on MS-Windows when the client is invoked as 'emacsclientw', since stderr goes to the bit bucket in that case. --- diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 425db8cface..ee124ea135c 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -2240,7 +2240,7 @@ main (int argc, char **argv) char *str = unquote_argument (p + strlen ("-error ")); if (!skiplf) printf ("\n"); - fprintf (stderr, "*ERROR*: %s", str); + message (true, "*ERROR*: %s", str); if (str[0]) skiplf = str[strlen (str) - 1] == '\n'; exit_status = EXIT_FAILURE; diff --git a/lisp/server.el b/lisp/server.el index 553890ce299..2973b783e64 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -717,7 +717,10 @@ server or call `\\[server-force-delete]' to forcibly disconnect it.")) ;; Those are decoded by server-process-filter according ;; to file-name-coding-system. Also don't get ;; confused by CRs since we don't quote them. - :coding 'raw-text-unix + ;; For encoding, we must use the locale's encoding, + ;; since emacsclient shows that verbatim on the + ;; console. + :coding (cons 'raw-text-unix locale-coding-system) ;; The other args depend on the kind of socket used. (if server-use-tcp (list :family 'ipv4 ;; We're not ready for IPv6 yet