Mercurial > emacs
comparison lisp/international/isearch-x.el @ 22920:f80a1ca0112f
(isearch-minibuffer-local-map): Bind
the key C-g to exit.
(isearch-minibuffer-self-insert): Use key-binding. Always call
exit-minibuffer.
(isearch-process-search-multibyte-characters): Use
unread-command-events instead of unread-input-method-events.
Always call isearch-update.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 06 Aug 1998 05:38:11 +0000 |
parents | c52637c83ebf |
children | fad48aef2340 |
comparison
equal
deleted
inserted
replaced
22919:95d147bbdce0 | 22920:f80a1ca0112f |
---|---|
61 (while l | 61 (while l |
62 (set-char-table-default table (car l) 'isearch-minibuffer-self-insert) | 62 (set-char-table-default table (car l) 'isearch-minibuffer-self-insert) |
63 (setq l (cdr l)))) | 63 (setq l (cdr l)))) |
64 (define-key map "\C-m" 'exit-minibuffer) | 64 (define-key map "\C-m" 'exit-minibuffer) |
65 (define-key map [return] 'exit-minibuffer) | 65 (define-key map [return] 'exit-minibuffer) |
66 (define-key map "\C-g" 'exit-minibuffer) | |
66 map) | 67 map) |
67 "Keymap of minibuffer to input multibyte characters while isearching.") | 68 "Keymap of minibuffer to input multibyte characters while isearching.") |
68 | 69 |
69 (defun isearch-minibuffer-non-self-insert () | 70 (defun isearch-minibuffer-non-self-insert () |
70 (interactive) | 71 (interactive) |
75 (interactive) | 76 (interactive) |
76 (let ((events (cons last-command-event unread-post-input-method-events))) | 77 (let ((events (cons last-command-event unread-post-input-method-events))) |
77 (catch 'isearch-tag | 78 (catch 'isearch-tag |
78 (while events | 79 (while events |
79 (let* ((event (car events)) | 80 (let* ((event (car events)) |
80 (cmd (lookup-key isearch-mode-map (vector event)))) | 81 (cmd (key-binding (vector event)))) |
81 (cond ((eq cmd 'isearch-printing-char) | 82 (cond ((or (eq cmd 'isearch-printing-char) |
83 (eq cmd 'isearch-minibuffer-self-insert)) | |
82 (insert event) | 84 (insert event) |
83 (setq events (cdr events))) | 85 (setq events (cdr events))) |
84 ((eq cmd 'exit-minibuffer) | 86 ((eq cmd 'exit-minibuffer) |
85 (setq events (cdr events)) | 87 (setq events (cdr events)) |
86 (throw 'isearch-tag nil)) | 88 (throw 'isearch-tag nil)) |
87 (t | 89 (t |
88 (throw 'isearch-tag nil)))))) | 90 (throw 'isearch-tag nil)))))) |
89 (setq unread-post-input-method-events events) | 91 (setq unread-post-input-method-events events) |
90 (or unread-post-input-method-events | 92 (exit-minibuffer))) |
91 (exit-minibuffer)))) | |
92 | 93 |
93 ;;;###autoload | 94 ;;;###autoload |
94 (defun isearch-process-search-multibyte-characters (last-char) | 95 (defun isearch-process-search-multibyte-characters (last-char) |
95 (if (eq this-command 'isearch-printing-char) | 96 (if (eq this-command 'isearch-printing-char) |
96 (let ((overriding-terminal-local-map nil) | 97 (let ((overriding-terminal-local-map nil) |
97 ;; Let input method work rather tersely. | 98 ;; Let input method work rather tersely. |
98 (input-method-verbose-flag nil) | 99 (input-method-verbose-flag nil) |
99 (minibuffer-local-map isearch-minibuffer-local-map) | 100 (minibuffer-local-map isearch-minibuffer-local-map) |
100 str) | 101 str) |
101 (setq unread-input-method-events | 102 (setq unread-command-events |
102 (cons last-char unread-input-method-events)) | 103 (cons last-char unread-command-events)) |
103 (setq str (read-multilingual-string | 104 (setq str (read-multilingual-string |
104 (concat (isearch-message-prefix) isearch-message) | 105 (concat (isearch-message-prefix) isearch-message) |
105 nil | 106 nil |
106 current-input-method)) | 107 current-input-method)) |
107 (if (and str (> (length str) 0)) | 108 (if (and str (> (length str) 0)) |
108 (isearch-process-search-string str str) | 109 (isearch-process-search-string str str)) |
109 (isearch-update))) | 110 (isearch-update)) |
110 (isearch-process-search-char last-char))) | 111 (isearch-process-search-char last-char))) |
111 | 112 |
112 ;;; isearch-x.el ends here | 113 ;;; isearch-x.el ends here |