stumpwm-devel
[Top][All Lists]
Advanced

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

[STUMP] stumpish and utf-8


From: Vitaly Mayatskikh
Subject: [STUMP] stumpish and utf-8
Date: Wed, 05 Mar 2008 23:16:59 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

The patch :)

--- core.lisp.orig      2008-03-05 22:18:51.000000000 +0100
+++ core.lisp   2008-03-05 22:44:04.000000000 +0100
@@ -3061,19 +3061,35 @@ chunks."
                bytes-after)))
     (loop while (> (one-cmd) 0))))
 
+(defun bytes-to-string (data)
+  (#+sbcl
+   sb-ext:octets-to-string
+   #+clisp
+   ext:convert-string-from-bytes 
+   (make-array (length data) :element-type '(unsigned-byte 8) 
:initial-contents data)
+   #+clisp
+   custom:*terminal-encoding*))
+
 (defun handle-stumpwm-commands (root)
   "Handle a StumpWM style command request."
   (let* ((win root)
          (screen (find-screen root))
          (data (xlib:get-property win :stumpwm_command :delete-p t))
-         (cmd (map 'string 'code-char data)))
+         (cmd (bytes-to-string data)))
     (let ((msgs (screen-last-msg screen))
           (hlts (screen-last-msg-highlights screen))
           (*executing-stumpwm-command* t))
       (setf (screen-last-msg screen) '()
             (screen-last-msg-highlights screen) '())
       (interactive-command cmd)
-      (xlib:change-property win :stumpwm_command_result (map 'list 'char-code 
(format nil "~{~{~a~%~}~}" (nreverse (screen-last-msg screen)))) :string 8)
+      (xlib:change-property win :stumpwm_command_result
+                           (#+sbcl
+                            sb-ext:string-to-octets
+                            #+clisp
+                            ext:convert-string-to-bytes
+                            (format nil "~{~{~a~%~}~}" (nreverse 
(screen-last-msg screen)))
+                            #+clisp
+                            custom:*terminal-encoding*) :string 8)
       (setf (screen-last-msg screen) msgs
             (screen-last-msg-highlights screen) hlts))
     (xlib:display-finish-output *display*)))
-- 
wbr, Vitaly

reply via email to

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