\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.
(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
;; 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),
(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))))