aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/international/encoded-kb.el24
1 files changed, 14 insertions, 10 deletions
diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el
index 2cdeba4baaf..4e17d62691c 100644
--- a/lisp/international/encoded-kb.el
+++ b/lisp/international/encoded-kb.el
@@ -189,23 +189,27 @@ The following key sequence may cause multilingual text insertion."
189 (aset encoded-kbd-iso2022-invocations 2 nil) 189 (aset encoded-kbd-iso2022-invocations 2 nil)
190 (setq unread-command-events (cons char unread-command-events)))) 190 (setq unread-command-events (cons char unread-command-events))))
191 191
192(defun encoded-kbd-self-insert-iso2022-8bit () 192(defun encoded-kbd-self-insert-iso2022-8bit (arg)
193 (interactive) 193 (interactive "p")
194 (cond 194 (cond
195 ((= last-command-char ?\216) ; SS2 (Single Shift 2) 195 ((= last-command-char ?\216) ; SS2 (Single Shift 2)
196 (aset encoded-kbd-iso2022-invocations 2 2)) 196 (aset encoded-kbd-iso2022-invocations 2 2))
197 ((= last-command-char ?\217) ; SS3 (Single Shift 3) 197 ((= last-command-char ?\217) ; SS3 (Single Shift 3)
198 (aset encoded-kbd-iso2022-invocations 2 3)) 198 (aset encoded-kbd-iso2022-invocations 2 3))
199 (t 199 (t
200 (let* ((charset (aref encoded-kbd-iso2022-designations 200 (let* ((charset (aref encoded-kbd-iso2022-designations
201 (or (aref encoded-kbd-iso2022-invocations 2) 201 (or (aref encoded-kbd-iso2022-invocations 2)
202 (aref encoded-kbd-iso2022-invocations 1)))) 202 (aref encoded-kbd-iso2022-invocations 1))))
203 (char (if (= (charset-dimension charset) 1) 203 (char (if (= (charset-dimension charset) 1)
204 (make-char charset last-command-char) 204 (make-char charset last-command-char)
205 (make-char charset last-command-char 205 (make-char charset last-command-char
206 (read-char-exclusive))))) 206 (read-char-exclusive)))))
207 (aset encoded-kbd-iso2022-invocations 2 nil) 207 (aset encoded-kbd-iso2022-invocations 2 nil)
208 (setq unread-command-events (cons char unread-command-events)))))) 208 ;; As simply setting unread-command-events may result in
209 ;; infinite-loop for characters 160..255, this is a temporary
210 ;; workaround until we found a better solution.
211 (let ((last-command-char char))
212 (self-insert-command arg))))))
209 213
210(defun encoded-kbd-self-insert-sjis () 214(defun encoded-kbd-self-insert-sjis ()
211 (interactive) 215 (interactive)
@@ -311,7 +315,7 @@ as a multilingual text encoded in a coding system set by
311 (setq encoded-kbd-mode nil) 315 (setq encoded-kbd-mode nil)
312 (error "No coding system for keyboard input is set")) 316 (error "No coding system for keyboard input is set"))
313 317
314 ((eq (coding-system-type coding) 'sjis) 318 ((eq (coding-system-type coding) 'shift-jis)
315 (set-input-mode 319 (set-input-mode
316 (nth 0 saved-input-mode) (nth 1 saved-input-mode) 320 (nth 0 saved-input-mode) (nth 1 saved-input-mode)
317 'use-8th-bit (nth 3 saved-input-mode)) 321 'use-8th-bit (nth 3 saved-input-mode))