]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix encoding and display of messages sent by server to emacsclient
authorEli Zaretskii <eliz@gnu.org>
Sat, 19 Nov 2022 19:34:07 +0000 (21:34 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 19 Nov 2022 19:34:07 +0000 (21:34 +0200)
* 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.

lib-src/emacsclient.c
lisp/server.el

index 425db8cfacea8080532b2edb134d4f0ea2eed56f..ee124ea135c700940e48f88a82ec67c7cb8bed29 100644 (file)
@@ -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;
index 553890ce2997fc24328d417a42660a308ec780a7..2973b783e64ab142f58dc346a5445d4146fa7276 100644 (file)
@@ -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