From: Philipp Stephani Date: Sat, 16 Apr 2016 09:55:17 +0000 (+0300) Subject: Simplify 8-bit character handling by terminal for 'raw-text' X-Git-Tag: emacs-25.0.93~28 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/4ab671c48c6dbec0515797186081cb96cc387c10 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'. --- diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 60a90ae15a..21ab7e176d 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -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)) diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index e52095789b..a2b64019f9 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -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))