* lisp/xt-mouse.el (xterm-mouse-event-read): Remove.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 Mar 2013 02:56:18 +0000 (22:56 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 Mar 2013 02:56:18 +0000 (22:56 -0400)
(xterm-mouse--read-event-sequence-1000)
(xterm-mouse--read-event-sequence-1006): Use read-event instead.

etc/NEWS
lisp/ChangeLog
lisp/xt-mouse.el

index 364dd8b..27218ed 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -238,6 +238,11 @@ It is layered as:
 \f
 * Incompatible Lisp Changes in Emacs 24.4
 
+** `read-event' does not return decoded chars in ttys any more.
+Just as was the case in Emacs-22 and before, decoding of tty input according to
+keyboard-coding-system is not performed in read-event any more.  But contrary
+to that past, it is still done before input-decode-map/function-key-map/...
+
 ** Removed inhibit-local-menu-bar-menus.
 
 ** frame-local variables that affect redisplay do not work any more.
index b609b21..6755f5a 100644 (file)
@@ -1,3 +1,9 @@
+2013-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xt-mouse.el (xterm-mouse-event-read): Remove.
+       (xterm-mouse--read-event-sequence-1000)
+       (xterm-mouse--read-event-sequence-1006): Use read-event instead.
+
 2013-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * term/xterm.el (xterm-function-map): Support format used with
index 9ee6c51..745bca7 100644 (file)
@@ -135,20 +135,6 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
                      (terminal-parameter nil 'xterm-mouse-y))))
   pos)
 
-;; 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-event)))
-    (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."
   (condition-case nil
@@ -167,7 +153,7 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
 ;; Normal terminal mouse click reporting: expect three bytes, of the
 ;; form <BUTTON+32> <X+32> <Y+32>.  Return a list (EVENT-TYPE X Y).
 (defun xterm-mouse--read-event-sequence-1000 ()
-  (list (let ((code (- (xterm-mouse-event-read) 32)))
+  (list (let ((code (- (read-event) 32)))
          (intern
           ;; For buttons > 3, the release-event looks differently
           ;; (see xc/programs/xterm/button.c, function EditorButton),
@@ -188,19 +174,19 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
                  (setq xterm-mouse-last code)
                  (format "down-mouse-%d" (+ 1 code))))))
        ;; x and y coordinates
-       (- (xterm-mouse-event-read) 33)
-       (- (xterm-mouse-event-read) 33)))
+       (- (read-event) 33)
+       (- (read-event) 33)))
 
 ;; XTerm's 1006-mode terminal mouse click reporting has the form
 ;; <BUTTON> ; <X> ; <Y> <M or m>, where the button and ordinates are
 ;; in encoded (decimal) form.  Return a list (EVENT-TYPE X Y).
 (defun xterm-mouse--read-event-sequence-1006 ()
   (let (button-bytes x-bytes y-bytes c)
-    (while (not (eq (setq c (xterm-mouse-event-read)) ?\;))
+    (while (not (eq (setq c (read-event)) ?\;))
       (push c button-bytes))
-    (while (not (eq (setq c (xterm-mouse-event-read)) ?\;))
+    (while (not (eq (setq c (read-event)) ?\;))
       (push c x-bytes))
-    (while (not (memq (setq c (xterm-mouse-event-read)) '(?m ?M)))
+    (while (not (memq (setq c (read-event)) '(?m ?M)))
       (push c y-bytes))
     (list (let* ((code (string-to-number
                        (apply 'string (nreverse button-bytes))))