diff options
| -rw-r--r-- | lisp/international/iso-transl.el | 35 |
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) |