[Top][All Lists]
[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