diff options
| author | Kenichi Handa | 2000-06-01 06:22:31 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2000-06-01 06:22:31 +0000 |
| commit | a5cc922e6a52d25b0935d699f0d23aa141707c5f (patch) | |
| tree | 17c3d727c32f63defc6ae16b232bd281615f8609 | |
| parent | 6389e4ab7b89b10cfbe7d7c69435c4a0c7fd0761 (diff) | |
| download | emacs-a5cc922e6a52d25b0935d699f0d23aa141707c5f.tar.gz emacs-a5cc922e6a52d25b0935d699f0d23aa141707c5f.zip | |
(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.
| -rw-r--r-- | lisp/isearch.el | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/lisp/isearch.el b/lisp/isearch.el index 23b281595f5..cbb9e84c891 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -619,7 +619,10 @@ is treated as a regexp. See \\[isearch-forward] for more info." | |||
| 619 | (setq ;; quit-flag nil not for isearch-mode | 619 | (setq ;; quit-flag nil not for isearch-mode |
| 620 | isearch-adjusted nil | 620 | isearch-adjusted nil |
| 621 | isearch-yank-flag nil) | 621 | isearch-yank-flag nil) |
| 622 | (isearch-lazy-highlight-new-loop)) | 622 | (isearch-lazy-highlight-new-loop) |
| 623 | ;; We must prevent the point moving to the end of composition when a | ||
| 624 | ;; part of the composition has just been searched. | ||
| 625 | (setq disable-point-adjustment t)) | ||
| 623 | 626 | ||
| 624 | (defun isearch-done (&optional nopush edit) | 627 | (defun isearch-done (&optional nopush edit) |
| 625 | (remove-hook 'mouse-leave-buffer-hook 'isearch-done) | 628 | (remove-hook 'mouse-leave-buffer-hook 'isearch-done) |
| @@ -1150,8 +1153,22 @@ and the meta character is unread so that it applies to editing the string." | |||
| 1150 | (progn | 1153 | (progn |
| 1151 | (isearch-done) | 1154 | (isearch-done) |
| 1152 | (apply 'isearch-unread keylist)) | 1155 | (apply 'isearch-unread keylist)) |
| 1153 | (apply 'isearch-unread | 1156 | (setq keylist |
| 1154 | (listify-key-sequence (lookup-key function-key-map key))))) | 1157 | (listify-key-sequence (lookup-key function-key-map key))) |
| 1158 | (while keylist | ||
| 1159 | (setq key (car keylist)) | ||
| 1160 | ;; If KEY is a printing char, we handle it here | ||
| 1161 | ;; directly to avoid the input method and keyboard | ||
| 1162 | ;; coding system translating it. | ||
| 1163 | (if (and (integerp key) | ||
| 1164 | (>= key ?\ ) (< key 256)) | ||
| 1165 | (progn | ||
| 1166 | (isearch-process-search-char key) | ||
| 1167 | (setq keylist (cdr keylist))) | ||
| 1168 | ;; As the remaining keys in KEYLIST can't be handled | ||
| 1169 | ;; here, we must reread them. | ||
| 1170 | (apply 'isearch-unread keylist) | ||
| 1171 | (setq keylist nil))))) | ||
| 1155 | ( | 1172 | ( |
| 1156 | ;; Handle an undefined shifted control character | 1173 | ;; Handle an undefined shifted control character |
| 1157 | ;; by downshifting it if that makes it defined. | 1174 | ;; by downshifting it if that makes it defined. |