diff options
| author | Richard M. Stallman | 1997-09-11 23:15:08 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-09-11 23:15:08 +0000 |
| commit | e3799a725391c70e3931b4070db34aa20e3357ec (patch) | |
| tree | bdf76002800e6f0e3343db3af1667af5f2c8cb0f | |
| parent | ce1364815efc5fc861b659cbfb98c7a2b2038ad0 (diff) | |
| download | emacs-e3799a725391c70e3931b4070db34aa20e3357ec.tar.gz emacs-e3799a725391c70e3931b4070db34aa20e3357ec.zip | |
(quail-update-translation): Fix previous change.
(quail-simple-translation-keymap, quail-conversion-keymap):
Make the default binding with define-key.
Handle meta-prefix-char the way isearch does.
(quail-translation-keymap): Likewise.
(quail-execute-non-quail-command): Handle the key sequence as the
same way as universal-argument-other-key.
(quail-make-guidance-frame): Don't dedicate the guidance buffer window.
(quail-show-guidance-buf): Likewise.
(quail-hide-guidance-buf): Delete code to turn off window dedication.
| -rw-r--r-- | lisp/international/quail.el | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 50d85676fdc..48a07a71d2f 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el | |||
| @@ -271,10 +271,7 @@ LEIM is available from the same ftp directory as Emacs.")) | |||
| 271 | 271 | ||
| 272 | (defvar quail-translation-keymap | 272 | (defvar quail-translation-keymap |
| 273 | (let ((map (make-keymap)) | 273 | (let ((map (make-keymap)) |
| 274 | (i 0)) | 274 | (i 32)) |
| 275 | (while (< i ?\ ) | ||
| 276 | (define-key map (char-to-string i) 'quail-execute-non-quail-command) | ||
| 277 | (setq i (1+ i))) | ||
| 278 | (while (< i 127) | 275 | (while (< i 127) |
| 279 | (define-key map (char-to-string i) 'quail-self-insert-command) | 276 | (define-key map (char-to-string i) 'quail-self-insert-command) |
| 280 | (setq i (1+ i))) | 277 | (setq i (1+ i))) |
| @@ -296,8 +293,14 @@ LEIM is available from the same ftp directory as Emacs.")) | |||
| 296 | (define-key map [tab] 'quail-completion) | 293 | (define-key map [tab] 'quail-completion) |
| 297 | (define-key map [delete] 'quail-delete-last-char) | 294 | (define-key map [delete] 'quail-delete-last-char) |
| 298 | (define-key map [backspace] 'quail-delete-last-char) | 295 | (define-key map [backspace] 'quail-delete-last-char) |
| 296 | (let ((meta-map (make-sparse-keymap))) | ||
| 297 | (define-key map (char-to-string meta-prefix-char) meta-map) | ||
| 298 | (define-key map [escape] meta-map)) | ||
| 299 | (define-key map (vector meta-prefix-char t) | ||
| 300 | 'quail-execute-non-quail-command) | ||
| 299 | ;; At last, define default key binding. | 301 | ;; At last, define default key binding. |
| 300 | (append map '((t . quail-execute-non-quail-command)))) | 302 | (define-key map [t] 'quail-execute-non-quail-command) |
| 303 | map) | ||
| 301 | "Keymap used processing translation in complex Quail modes. | 304 | "Keymap used processing translation in complex Quail modes. |
| 302 | Only a few especially complex input methods use this map; | 305 | Only a few especially complex input methods use this map; |
| 303 | most use `quail-simple-translation-keymap' instead. | 306 | most use `quail-simple-translation-keymap' instead. |
| @@ -315,8 +318,15 @@ This map is activated while translation region is active.") | |||
| 315 | (define-key map "\177" 'quail-delete-last-char) | 318 | (define-key map "\177" 'quail-delete-last-char) |
| 316 | ;;; This interferes with handling of escape sequences on non-X terminals. | 319 | ;;; This interferes with handling of escape sequences on non-X terminals. |
| 317 | ;;; (define-key map "\e" '(keymap (t . quail-execute-non-quail-command))) | 320 | ;;; (define-key map "\e" '(keymap (t . quail-execute-non-quail-command))) |
| 321 | (let ((meta-map (make-sparse-keymap))) | ||
| 322 | (define-key map (char-to-string meta-prefix-char) meta-map) | ||
| 323 | (define-key map [escape] meta-map)) | ||
| 324 | (define-key map (vector meta-prefix-char t) | ||
| 325 | 'quail-execute-non-quail-command) | ||
| 318 | ;; At last, define default key binding. | 326 | ;; At last, define default key binding. |
| 319 | (append map '((t . quail-execute-non-quail-command)))) | 327 | (define-key map (vector meta-prefix-char t) |
| 328 | 'quail-execute-non-quail-command) | ||
| 329 | map) | ||
| 320 | "Keymap used while processing translation in simple Quail modes. | 330 | "Keymap used while processing translation in simple Quail modes. |
| 321 | A few especially complex input methods use `quail--translation-keymap' instead. | 331 | A few especially complex input methods use `quail--translation-keymap' instead. |
| 322 | This map is activated while translation region is active.") | 332 | This map is activated while translation region is active.") |
| @@ -346,8 +356,14 @@ This map is activated while translation region is active.") | |||
| 346 | (define-key map "\177" 'quail-conversion-backward-delete-char) | 356 | (define-key map "\177" 'quail-conversion-backward-delete-char) |
| 347 | (define-key map [delete] 'quail-conversion-backward-delete-char) | 357 | (define-key map [delete] 'quail-conversion-backward-delete-char) |
| 348 | (define-key map [backspace] 'quail-conversion-backward-delete-char) | 358 | (define-key map [backspace] 'quail-conversion-backward-delete-char) |
| 359 | (let ((meta-map (make-sparse-keymap))) | ||
| 360 | (define-key map (char-to-string meta-prefix-char) meta-map) | ||
| 361 | (define-key map [escape] meta-map)) | ||
| 362 | (define-key map (vector meta-prefix-char t) | ||
| 363 | 'quail-execute-non-quail-command) | ||
| 349 | ;; At last, define default key binding. | 364 | ;; At last, define default key binding. |
| 350 | (append map '((t . quail-execute-non-quail-command)))) | 365 | (define-key map [t] 'quail-execute-non-quail-command) |
| 366 | map) | ||
| 351 | "Keymap used for processing conversion in Quail mode. | 367 | "Keymap used for processing conversion in Quail mode. |
| 352 | This map is activated while convesion region is active but translation | 368 | This map is activated while convesion region is active but translation |
| 353 | region is not active.") | 369 | region is not active.") |
| @@ -597,7 +613,10 @@ The command \\[describe-input-method] describes the current Quail package." | |||
| 597 | "Execute one non-Quail command out of Quail mode. | 613 | "Execute one non-Quail command out of Quail mode. |
| 598 | The current translation and conversion are terminated." | 614 | The current translation and conversion are terminated." |
| 599 | (interactive) | 615 | (interactive) |
| 600 | (setq unread-command-events (cons last-input-event unread-command-events)) | 616 | (let* ((key (this-command-keys)) |
| 617 | (keylist (listify-key-sequence key))) | ||
| 618 | (setq unread-command-events (append keylist unread-command-events))) | ||
| 619 | (reset-this-command-lengths) | ||
| 601 | (quail-terminate-translation) | 620 | (quail-terminate-translation) |
| 602 | (quail-delete-overlays) | 621 | (quail-delete-overlays) |
| 603 | (setq overriding-terminal-local-map nil) | 622 | (setq overriding-terminal-local-map nil) |
| @@ -1079,12 +1098,13 @@ The returned value is a Quail map specific to KEY." | |||
| 1079 | ;; Otherwise, in case the user is using a single-byte | 1098 | ;; Otherwise, in case the user is using a single-byte |
| 1080 | ;; extended-ASCII character set, | 1099 | ;; extended-ASCII character set, |
| 1081 | ;; try inserting the translated character. | 1100 | ;; try inserting the translated character. |
| 1082 | (let ((char (sref (or quail-current-str | 1101 | (let ((char (or quail-current-str |
| 1083 | (substring quail-current-key 0 len)) | 1102 | (substring quail-current-key 0 len)))) |
| 1084 | 0))) | 1103 | (if (stringp char) |
| 1104 | (setq char (sref char 0))) | ||
| 1085 | (if (= (length (split-char char)) 2) | 1105 | (if (= (length (split-char char)) 2) |
| 1086 | (insert-char (logand char 127)) | 1106 | (insert-char (logand char 255) 1) |
| 1087 | (error "Cannot insert three-byte character in single-byte mode"))))) | 1107 | (error "Three-byte characters require enabling multibyte characters"))))) |
| 1088 | (insert (or quail-current-str quail-current-key))))) | 1108 | (insert (or quail-current-str quail-current-key))))) |
| 1089 | (quail-update-guidance) | 1109 | (quail-update-guidance) |
| 1090 | (if control-flag | 1110 | (if control-flag |
| @@ -1384,7 +1404,8 @@ Remaining args are for FUNC." | |||
| 1384 | (cons (cons 'top newtop) fparam)))) | 1404 | (cons (cons 'top newtop) fparam)))) |
| 1385 | (win (frame-first-window frame))) | 1405 | (win (frame-first-window frame))) |
| 1386 | (set-window-buffer win buf) | 1406 | (set-window-buffer win buf) |
| 1387 | (set-window-dedicated-p win t)))) | 1407 | ;;(set-window-dedicated-p win t) |
| 1408 | ))) | ||
| 1388 | 1409 | ||
| 1389 | ;; Setup Quail completion buffer. | 1410 | ;; Setup Quail completion buffer. |
| 1390 | (defun quail-setup-completion-buf () | 1411 | (defun quail-setup-completion-buf () |
| @@ -1448,7 +1469,8 @@ or in a newly created frame (if the selected frame has no other windows)." | |||
| 1448 | ;; which is what we wanted. | 1469 | ;; which is what we wanted. |
| 1449 | (setq win (split-window win (- height 2))))) | 1470 | (setq win (split-window win (- height 2))))) |
| 1450 | (set-window-buffer win quail-guidance-buf) | 1471 | (set-window-buffer win quail-guidance-buf) |
| 1451 | (set-window-dedicated-p win t))) | 1472 | ;;(set-window-dedicated-p win t) |
| 1473 | )) | ||
| 1452 | (set-window-buffer win quail-guidance-buf)) | 1474 | (set-window-buffer win quail-guidance-buf)) |
| 1453 | (setq quail-guidance-win win))) | 1475 | (setq quail-guidance-win win))) |
| 1454 | 1476 | ||
| @@ -1473,7 +1495,7 @@ or in a newly created frame (if the selected frame has no other windows)." | |||
| 1473 | ;; We are using a separate frame for guidance buffer. | 1495 | ;; We are using a separate frame for guidance buffer. |
| 1474 | ;;(set-window-dedicated-p win nil) | 1496 | ;;(set-window-dedicated-p win nil) |
| 1475 | (delete-frame (window-frame win))) | 1497 | (delete-frame (window-frame win))) |
| 1476 | (set-window-dedicated-p win nil) | 1498 | ;;(set-window-dedicated-p win nil) |
| 1477 | (delete-window win))))))) | 1499 | (delete-window win))))))) |
| 1478 | 1500 | ||
| 1479 | (defun quail-update-guidance () | 1501 | (defun quail-update-guidance () |