emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 1682bd18f5: Fix encoding and display of messages sent by server t


From: Eli Zaretskii
Subject: master 1682bd18f5: Fix encoding and display of messages sent by server to emacsclient
Date: Sat, 19 Nov 2022 14:35:59 -0500 (EST)

branch: master
commit 1682bd18f50ed2095b2162207603c6b8a3f0225f
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    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.
---
 lib-src/emacsclient.c | 2 +-
 lisp/server.el        | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 425db8cfac..ee124ea135 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 553890ce29..2973b783e6 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]