Fixes: debbugs:6594

* lisp/xt-mouse.el (xterm-mouse-event-read): Try to recover the raw
character.
This commit is contained in:
Andreas Schwab 2011-07-28 20:40:28 +02:00
parent c897048c52
commit 29bbcfa705
2 changed files with 15 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
* xt-mouse.el (xterm-mouse-event-read): Try to recover the raw
character. (Bug#6594)
2011-07-12 Chong Yidong <cyd@stupidchicken.com>
* window.el (split-window-horizontally): Doc fix (Bug#9060).

View file

@ -121,10 +121,17 @@
;; read xterm sequences above ascii 127 (#x7f)
(defun xterm-mouse-event-read ()
;; We get the characters decoded by the keyboard coding system. Try
;; to recover the raw character.
(let ((c (read-char)))
(if (> c #x3FFF80)
(+ 128 (- c #x3FFF80))
c)))
(cond ;; If meta-flag is t we get a meta character
((>= c ?\M-\^@)
(- c (- ?\M-\^@ 128)))
;; Reencode the character in the keyboard coding system, if
;; this is a non-ASCII character.
((>= c #x80)
(aref (encode-coding-string (string c) (keyboard-coding-system)) 0))
(t c))))
(defun xterm-mouse-truncate-wrap (f)
"Truncate with wrap-around."