diff options
author | Juri Linkov <juri@linkov.net> | 2021-05-09 22:27:08 +0300 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2021-05-09 22:27:08 +0300 |
commit | 25c775b4e964aaa2cbf17997c0479dfc2ecf33e2 (patch) | |
tree | 38736a9f82b8e11cab42d6ffbcd63d4427bfe410 /lisp/misearch.el | |
parent | 3d2c892114ebd35cb10928bb87f991316a0ca55c (diff) | |
download | emacs-25c775b4e964aaa2cbf17997c0479dfc2ecf33e2.tar.gz emacs-25c775b4e964aaa2cbf17997c0479dfc2ecf33e2.tar.bz2 emacs-25c775b4e964aaa2cbf17997c0479dfc2ecf33e2.zip |
* lisp/misearch.el (multi-isearch-switch-buffer): New function.
* lisp/isearch.el (isearch-search-string):
* lisp/misearch.el (multi-isearch-wrap, multi-isearch-pop-state): Use it.
https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00309.html
Diffstat (limited to 'lisp/misearch.el')
-rw-r--r-- | lisp/misearch.el | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/lisp/misearch.el b/lisp/misearch.el index 335efb95161..338880f25f2 100644 --- a/lisp/misearch.el +++ b/lisp/misearch.el @@ -190,10 +190,10 @@ the initial buffer." (if (or (null multi-isearch-pause) (and multi-isearch-pause multi-isearch-current-buffer)) (progn - (switch-to-buffer - (setq multi-isearch-current-buffer - (funcall multi-isearch-next-buffer-current-function - (current-buffer) t))) + (setq multi-isearch-current-buffer + (funcall multi-isearch-next-buffer-current-function + (current-buffer) t)) + (multi-isearch-switch-buffer) (goto-char (if isearch-forward (point-min) (point-max)))) (setq multi-isearch-current-buffer (current-buffer)) (setq isearch-wrapped nil))) @@ -208,8 +208,18 @@ search status stack." (defun multi-isearch-pop-state (_cmd buffer) "Restore the multiple buffers search state in BUFFER. Switch to the buffer restored from the search status stack." - (unless (equal buffer (current-buffer)) - (switch-to-buffer (setq multi-isearch-current-buffer buffer)))) + (unless (eq buffer (current-buffer)) + (setq multi-isearch-current-buffer buffer) + (multi-isearch-switch-buffer))) + +;;;###autoload +(defun multi-isearch-switch-buffer () + "Switch to the next buffer in multi-buffer search." + (when (and (buffer-live-p multi-isearch-current-buffer) + (not (eq multi-isearch-current-buffer (current-buffer)))) + (setq isearch-mode nil) + (switch-to-buffer multi-isearch-current-buffer) + (setq isearch-mode " M-Isearch"))) ;;; Global multi-buffer search invocations |