Mercurial > emacs
changeset 29358:9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
to prevent the point moving to the end of a composition when a
part of a composition is searched.
(isearch-other-meta-char): If the key invoking this command can be
mapped by function-key-map to a printing char, call
isearch-process-search-char directly.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 01 Jun 2000 06:22:31 +0000 |
parents | 5c1ee256ef48 |
children | 90bf709a2d1c |
files | lisp/isearch.el |
diffstat | 1 files changed, 20 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/isearch.el Thu Jun 01 06:21:43 2000 +0000 +++ b/lisp/isearch.el Thu Jun 01 06:22:31 2000 +0000 @@ -619,7 +619,10 @@ (setq ;; quit-flag nil not for isearch-mode isearch-adjusted nil isearch-yank-flag nil) - (isearch-lazy-highlight-new-loop)) + (isearch-lazy-highlight-new-loop) + ;; We must prevent the point moving to the end of composition when a + ;; part of the composition has just been searched. + (setq disable-point-adjustment t)) (defun isearch-done (&optional nopush edit) (remove-hook 'mouse-leave-buffer-hook 'isearch-done) @@ -1150,8 +1153,22 @@ (progn (isearch-done) (apply 'isearch-unread keylist)) - (apply 'isearch-unread - (listify-key-sequence (lookup-key function-key-map key))))) + (setq keylist + (listify-key-sequence (lookup-key function-key-map key))) + (while keylist + (setq key (car keylist)) + ;; If KEY is a printing char, we handle it here + ;; directly to avoid the input method and keyboard + ;; coding system translating it. + (if (and (integerp key) + (>= key ?\ ) (< key 256)) + (progn + (isearch-process-search-char key) + (setq keylist (cdr keylist))) + ;; As the remaining keys in KEYLIST can't be handled + ;; here, we must reread them. + (apply 'isearch-unread keylist) + (setq keylist nil))))) ( ;; Handle an undefined shifted control character ;; by downshifting it if that makes it defined.