From d240f431cbbddfeb3ae2ac8a2879ce34bf52d111 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Mon, 22 Oct 2007 23:44:29 +0000 Subject: [PATCH] (isearch-search-string): After finding the next occurrence switch to buffer isearch-buffers-current-buffer when isearch-buffers-next-buffer-function is non-nil and isearch-buffers-current-buffer is live. --- lisp/isearch.el | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index e0cba48eed9..c9a4cf45664 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -2035,8 +2035,13 @@ Can be changed via `isearch-search-fun-function' for special needs." (if isearch-forward (< pos2 pos1) (> pos2 pos1)))) (setq pos1 pos2) (set-match-data match-data))))) - (if pos1 - (goto-char pos1)) + (when pos1 + ;; When using multiple buffers isearch, switch to the new buffer here, + ;; because `save-excursion' above doesn't allow doing it inside funcall. + (if (and isearch-buffers-next-buffer-function + (buffer-live-p isearch-buffers-current-buffer)) + (switch-to-buffer isearch-buffers-current-buffer)) + (goto-char pos1)) pos1)) (defun isearch-search () -- 2.39.2