Simplify 8-bit character handling by terminal for 'raw-text'

* lisp/international/mule.el (set-keyboard-coding-system): Treat
'raw-text' as another coding type that requires 8-bit characters.
* lisp/xt-mouse.el (xterm-mouse--read-coordinate): Use 'no-conversion'
instead of 'latin-1'.
This commit is contained in:
Philipp Stephani 2016-04-16 12:55:17 +03:00 committed by Eli Zaretskii
parent f3653ec446
commit 4ab671c48c
2 changed files with 30 additions and 40 deletions

View file

@ -1445,42 +1445,35 @@ graphical terminals."
(let ((coding-type (coding-system-type coding-system))
(saved-meta-mode
(terminal-parameter terminal 'keyboard-coding-saved-meta-mode)))
(if (not (eq coding-type 'raw-text))
(let (accept-8-bit)
(if (not (or (coding-system-get coding-system :suitable-for-keyboard)
(coding-system-get coding-system :ascii-compatible-p)))
(error "Unsuitable coding system for keyboard: %s" coding-system))
(cond ((memq coding-type '(charset utf-8 shift-jis big5 ccl))
(setq accept-8-bit t))
((eq coding-type 'iso-2022)
(let ((flags (coding-system-get coding-system :flags)))
(or (memq '7-bit flags)
(setq accept-8-bit t))))
(t
(error "Unsupported coding system for keyboard: %s"
coding-system)))
(if accept-8-bit
(progn
(or saved-meta-mode
(set-terminal-parameter terminal
'keyboard-coding-saved-meta-mode
(cons (nth 2 (current-input-mode))
nil)))
(set-input-meta-mode 8 terminal))
(when saved-meta-mode
(set-input-meta-mode (car saved-meta-mode) terminal)
(set-terminal-parameter terminal
'keyboard-coding-saved-meta-mode
nil)))
;; Avoid end-of-line conversion.
(setq coding-system
(coding-system-change-eol-conversion coding-system 'unix)))
(when saved-meta-mode
(set-input-meta-mode (car saved-meta-mode) terminal)
(set-terminal-parameter terminal
'keyboard-coding-saved-meta-mode
nil))))
(let (accept-8-bit)
(if (not (or (coding-system-get coding-system :suitable-for-keyboard)
(coding-system-get coding-system :ascii-compatible-p)))
(error "Unsuitable coding system for keyboard: %s" coding-system))
(cond ((memq coding-type '(raw-text charset utf-8 shift-jis big5 ccl))
(setq accept-8-bit t))
((eq coding-type 'iso-2022)
(let ((flags (coding-system-get coding-system :flags)))
(or (memq '7-bit flags)
(setq accept-8-bit t))))
(t
(error "Unsupported coding system for keyboard: %s"
coding-system)))
(if accept-8-bit
(progn
(or saved-meta-mode
(set-terminal-parameter terminal
'keyboard-coding-saved-meta-mode
(cons (nth 2 (current-input-mode))
nil)))
(set-input-meta-mode 8 terminal))
(when saved-meta-mode
(set-input-meta-mode (car saved-meta-mode) terminal)
(set-terminal-parameter terminal
'keyboard-coding-saved-meta-mode
nil)))
;; Avoid end-of-line conversion.
(setq coding-system
(coding-system-change-eol-conversion coding-system 'unix))))
(set-keyboard-coding-system-internal coding-system terminal)
(setq keyboard-coding-system coding-system))

View file

@ -155,10 +155,7 @@ single byte."
(set-keyboard-coding-system
(if (terminal-parameter nil 'xterm-mouse-utf-8)
'utf-8-unix
;; Use Latin-1 instead of no-conversion to avoid flicker
;; due to `set-keyboard-coding-system' changing the meta
;; mode.
'latin-1))
'no-conversion))
;; Wait only a little; we assume that the entire escape sequence
;; has already been sent when this function is called.
(read-char nil nil 0.1))