aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/international/iso-transl.el35
1 files changed, 20 insertions, 15 deletions
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index 4b39ccea632..f1b6b3a0559 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -221,21 +221,26 @@ sequence VECTOR. (VECTOR is normally one character long.)")
221;; or `Alt-~ n' or `mute-asciitilde n'. 221;; or `Alt-~ n' or `mute-asciitilde n'.
222(defun iso-transl-define-keys (alist) 222(defun iso-transl-define-keys (alist)
223 (while alist 223 (while alist
224 (define-key iso-transl-ctl-x-8-map (car (car alist)) (cdr (car alist))) 224 (let ((translated-vec
225 (let ((inchar (aref (car (car alist)) 0)) 225 (if enable-multibyte-characters
226 (vec (vconcat (car (car alist)))) 226 (vector (+ (aref (cdr (car alist)) 0)
227 (tail iso-transl-dead-key-alist)) 227 quoted-insert-character-offset))
228 (aset vec 0 (logior (aref vec 0) ?\A-\^@)) 228 (cdr (car alist)))))
229 (define-key key-translation-map vec (cdr (car alist))) 229 (define-key iso-transl-ctl-x-8-map (car (car alist)) translated-vec)
230 (define-key isearch-mode-map (vector (aref vec 0)) nil) 230 (let ((inchar (aref (car (car alist)) 0))
231 (while tail 231 (vec (vconcat (car (car alist))))
232 (if (eq (car (car tail)) inchar) 232 (tail iso-transl-dead-key-alist))
233 (let ((deadvec (copy-sequence vec)) 233 (aset vec 0 (logior (aref vec 0) ?\A-\^@))
234 (deadkey (cdr (car tail)))) 234 (define-key key-translation-map vec translated-vec)
235 (aset deadvec 0 deadkey) 235 (define-key isearch-mode-map (vector (aref vec 0)) nil)
236 (define-key isearch-mode-map (vector deadkey) nil) 236 (while tail
237 (define-key key-translation-map deadvec (cdr (car alist))))) 237 (if (eq (car (car tail)) inchar)
238 (setq tail (cdr tail)))) 238 (let ((deadvec (copy-sequence vec))
239 (deadkey (cdr (car tail))))
240 (aset deadvec 0 deadkey)
241 (define-key isearch-mode-map (vector deadkey) nil)
242 (define-key key-translation-map deadvec translated-vec)))
243 (setq tail (cdr tail)))))
239 (setq alist (cdr alist)))) 244 (setq alist (cdr alist))))
240 245
241(defun iso-transl-set-language (lang) 246(defun iso-transl-set-language (lang)