[slime-devel] Coding systems: suggested change to slime-open-stream-to-lisp

Harald Hanche-Olsen hanche at math.ntnu.no
Fri Dec 30 22:05:33 UTC 2005


May I suggest the following patch to slime-open-stream-to-lisp:

--- slime.el	30 Dec 2005 19:26:22 +0100	1.574
+++ slime.el	30 Dec 2005 22:58:49 +0100	
@@ -2775,9 +2775,8 @@
             (list* '("<" . slime-mark-presentation-start-handler) 
                    '(">" . slime-mark-presentation-end-handler)
                    bridge-handlers)))
-    (set-process-coding-system stream 
-                               slime-net-coding-system 
-                               slime-net-coding-system)
+    (let ((pcs (process-coding-system (slime-current-connection))))
+      (set-process-coding-system stream (car pcs) (cdr pcs)))
     (when-let (secret (slime-secret))
       (slime-net-send secret stream))
     stream))

It appears to solve the following problem.  I have not changed
slime-net-coding-system from its default value, but I have

(setf slime-lisp-implementations
      '((sbcl ("sbcl") :coding-system utf-8-unix)
	(cmucl ("cmucl") :coding-system iso-latin-1-unix)))

So when I run sbcl, coding systems on the emacs and sbcl sides match
for input and printing of values, but there is a mismatch on printing
from lisp code:  The sbcl side uses utf-8, while the emacs side
assumes latin-1.

Quick demo (first good, second bad):

cl-user> #\å
#\å
cl-user> (format t "~C" #\å)
Ã¥
nil

- Harald



More information about the slime-devel mailing list