;;; isearch-multi.el --- isearch extensions for multi-buffer search
-;; Copyright (C) 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2008 Free Software Foundation, Inc.
;; Author: Juri Linkov <juri@jurta.org>
;; Keywords: matching
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
:version "23.1"
:group 'isearch)
+(defcustom isearch-buffers-multi t
+ "Non-nil enables searching multiple related buffers, in certain modes."
+ :type 'boolean
+ :version "23.1"
+ :group 'isearch-buffers)
+
(defcustom isearch-buffers-pause t
"A choice defining where to pause the search.
If the value is nil, don't pause before going to the next buffer.
"Function to call to get the next buffer to search.
When this variable is set to a function that returns a buffer, then
-after typing another C-s or C-r at a failing search, the search goes
+after typing another \\[isearch-forward] or \\[isearch-backward] \
+at a failing search, the search goes
to the next buffer in the series and continues searching for the
next occurrence.
The first argument of this function is the current buffer where the
search is currently searching. It defines the base buffer relative to
which this function should find the next buffer. When the isearch
-direction is backward (when isearch-forward is nil), this function
-should return the previous buffer to search. If the second argument of
+direction is backward (when `isearch-forward' is nil), this function
+should return the previous buffer to search. If the second argument of
this function WRAP is non-nil, then it should return the first buffer
in the series; and for the backward search, it should return the last
buffer in the series.")
;; successively, and search the string in them. Do this only
;; when bound is nil (i.e. not while lazy-highlighting search
;; strings in the current buffer).
- (unless bound
+ (when (and (not bound) isearch-buffers-multi)
;; If no-pause or there was one attempt to leave the current buffer
(if (or (null isearch-buffers-pause)
(and isearch-buffers-pause isearch-buffers-current-buffer))