diff options
| author | Kenichi Handa | 1997-02-26 13:03:20 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1997-02-26 13:03:20 +0000 |
| commit | 5350ad1dda5764b75ee962dd1b57a7dfa9988385 (patch) | |
| tree | c8718213e923c5008a8ab9d75615fb638601db9b | |
| parent | 69eba008493fc9642f4e00e2f2dcf5eeef801593 (diff) | |
| download | emacs-5350ad1dda5764b75ee962dd1b57a7dfa9988385.tar.gz emacs-5350ad1dda5764b75ee962dd1b57a7dfa9988385.zip | |
Add quail-mode to default value of
minor-mode-map-alist if it is set to local variable.
(quail-show-kbd-layout): Bug fixed for keys not translated.
| -rw-r--r-- | lisp/international/quail.el | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 4beabf301ea..d10538375a3 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el | |||
| @@ -232,6 +232,14 @@ LEIM is available from the same ftp directory as Emacs.")) | |||
| 232 | (setq minor-mode-map-alist | 232 | (setq minor-mode-map-alist |
| 233 | (cons (cons 'quail-mode quail-mode-map) minor-mode-map-alist))) | 233 | (cons (cons 'quail-mode quail-mode-map) minor-mode-map-alist))) |
| 234 | 234 | ||
| 235 | ;; Since some Emacs Lisp programs (e.g. viper.el) make | ||
| 236 | ;; minor-mode-map-alist buffer-local, we must be sure to register | ||
| 237 | ;; quail-mode-map in default-value of minor-mode-map-alist. | ||
| 238 | (if (local-variable-p 'minor-mode-map-alist) | ||
| 239 | (let ((map (default-value 'minor-mode-map-alist))) | ||
| 240 | (or (assq 'quail-mode map) | ||
| 241 | (set-default 'minor-mode-map-alist (cons 'quail-mode map))))) | ||
| 242 | |||
| 235 | (defvar quail-translation-keymap | 243 | (defvar quail-translation-keymap |
| 236 | (let ((map (make-keymap)) | 244 | (let ((map (make-keymap)) |
| 237 | (i 0)) | 245 | (i 0)) |
| @@ -1462,14 +1470,14 @@ key binding | |||
| 1462 | (setq ch (aref quail-keyboard-layout i)) | 1470 | (setq ch (aref quail-keyboard-layout i)) |
| 1463 | (if (= ch ?\ ) | 1471 | (if (= ch ?\ ) |
| 1464 | (insert ch) | 1472 | (insert ch) |
| 1465 | (let ((map (cdr (assq ch (cdr (quail-map)))))) | 1473 | (let* ((map (cdr (assq ch (cdr (quail-map))))) |
| 1466 | (if map | 1474 | (translation (and map (quail-get-translation |
| 1467 | (let ((translation | 1475 | map (char-to-string ch) 1)))) |
| 1468 | (quail-get-translation map (char-to-string ch) 1))) | 1476 | (if (integerp translation) |
| 1469 | (if (integerp translation) | 1477 | (insert translation) |
| 1470 | (insert translation) | 1478 | (if (consp translation) |
| 1471 | (insert (aref (cdr translation) (car translation))))) | 1479 | (insert (aref (cdr translation) (car translation))) |
| 1472 | (insert ch)))) | 1480 | (insert ch))))) |
| 1473 | (setq i (1+ i)))) | 1481 | (setq i (1+ i)))) |
| 1474 | (newline)) | 1482 | (newline)) |
| 1475 | 1483 | ||