]> code.delx.au - gnu-emacs/blobdiff - lisp/misearch.el
Update docs for `customize-mode'
[gnu-emacs] / lisp / misearch.el
index dc8e1d0aa4313712d2d19d60dc6f31706eb2a310..1b9cc9288c7f95e77191376e0fba32390f9293f6 100644 (file)
@@ -1,6 +1,6 @@
 ;;; misearch.el --- isearch extensions for multi-buffer search
 
 ;;; misearch.el --- isearch extensions for multi-buffer search
 
-;; Copyright (C) 2007-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
 ;; Author: Juri Linkov <juri@jurta.org>
 ;; Keywords: matching
 
 ;; Author: Juri Linkov <juri@jurta.org>
 ;; Keywords: matching
@@ -91,6 +91,14 @@ Isearch starts.")
   "The buffer where the search is currently searching.
 The value is nil when the search still is in the initial buffer.")
 
   "The buffer where the search is currently searching.
 The value is nil when the search still is in the initial buffer.")
 
+;;;###autoload
+(defvar multi-isearch-buffer-list nil
+  "Sequence of buffers visited by multiple buffers Isearch.
+This is nil if Isearch is not currently searching more than one buffer.")
+;;;###autoload
+(defvar multi-isearch-file-list nil
+  "Sequence of files visited by multiple file buffers Isearch.")
+
 (defvar multi-isearch-orig-search-fun nil)
 (defvar multi-isearch-orig-wrap nil)
 (defvar multi-isearch-orig-push-state nil)
 (defvar multi-isearch-orig-search-fun nil)
 (defvar multi-isearch-orig-wrap nil)
 (defvar multi-isearch-orig-push-state nil)
@@ -119,7 +127,9 @@ Intended to be added to `isearch-mode-hook'."
 (defun multi-isearch-end ()
   "Clean up the multi-buffer search after terminating isearch."
   (setq multi-isearch-current-buffer nil
 (defun multi-isearch-end ()
   "Clean up the multi-buffer search after terminating isearch."
   (setq multi-isearch-current-buffer nil
-       multi-isearch-next-buffer-current-function nil)
+       multi-isearch-next-buffer-current-function nil
+       multi-isearch-buffer-list nil
+       multi-isearch-file-list nil)
   (setq-default isearch-search-fun-function multi-isearch-orig-search-fun
                isearch-wrap-function       multi-isearch-orig-wrap
                isearch-push-state-function multi-isearch-orig-push-state)
   (setq-default isearch-search-fun-function multi-isearch-orig-search-fun
                isearch-wrap-function       multi-isearch-orig-wrap
                isearch-push-state-function multi-isearch-orig-push-state)
@@ -204,8 +214,6 @@ Switch to the buffer restored from the search status stack."
 \f
 ;;; Global multi-buffer search invocations
 
 \f
 ;;; Global multi-buffer search invocations
 
-(defvar multi-isearch-buffer-list nil)
-
 (defun multi-isearch-next-buffer-from-list (&optional buffer wrap)
   "Return the next buffer in the series of buffers.
 This function is used for multiple buffers Isearch.  A sequence of
 (defun multi-isearch-next-buffer-from-list (&optional buffer wrap)
   "Return the next buffer in the series of buffers.
 This function is used for multiple buffers Isearch.  A sequence of
@@ -229,7 +237,7 @@ set in `multi-isearch-buffers' or `multi-isearch-buffers-regexp'."
         (ido-ignore-item-temp-list bufs))
     (while (not (string-equal
                 (setq buf (read-buffer
         (ido-ignore-item-temp-list bufs))
     (while (not (string-equal
                 (setq buf (read-buffer
-                           (if (eq read-buffer-function 'ido-read-buffer)
+                           (if (eq read-buffer-function #'ido-read-buffer)
                                "Next buffer to search (C-j to end): "
                              "Next buffer to search (RET to end): ")
                            nil t))
                                "Next buffer to search (C-j to end): "
                              "Next buffer to search (RET to end): ")
                            nil t))
@@ -290,8 +298,6 @@ whose names match the specified regexp."
 \f
 ;;; Global multi-file search invocations
 
 \f
 ;;; Global multi-file search invocations
 
-(defvar multi-isearch-file-list nil)
-
 (defun multi-isearch-next-file-buffer-from-list (&optional buffer wrap)
   "Return the next buffer in the series of file buffers.
 This function is used for multiple file buffers Isearch.  A sequence
 (defun multi-isearch-next-file-buffer-from-list (&optional buffer wrap)
   "Return the next buffer in the series of file buffers.
 This function is used for multiple file buffers Isearch.  A sequence
@@ -374,6 +380,27 @@ whose file names match the specified wildcard."
     (goto-char (if isearch-forward (point-min) (point-max)))
     (isearch-forward-regexp nil t)))
 
     (goto-char (if isearch-forward (point-min) (point-max)))
     (isearch-forward-regexp nil t)))
 
+(defvar unload-function-defs-list)
+
+(defun multi-isearch-unload-function ()
+  "Remove autoloaded variables from `unload-function-defs-list'.
+Also prevent the feature from being reloaded via `isearch-mode-hook'."
+  (remove-hook 'isearch-mode-hook 'multi-isearch-setup)
+  (let ((defs (list (car unload-function-defs-list)))
+       (auto '(multi-isearch-next-buffer-function
+               multi-isearch-next-buffer-current-function
+               multi-isearch-current-buffer
+               multi-isearch-buffer-list multi-isearch-file-list)))
+    (dolist (def (cdr unload-function-defs-list))
+      (unless (and (symbolp def)
+                  (memq def auto))
+       (push def defs)))
+    (setq unload-function-defs-list (nreverse defs))
+    ;; .
+    nil))
+
+(defalias 'misearch-unload-function 'multi-isearch-unload-function)
+
 \f
 (provide 'multi-isearch)
 (provide 'misearch)
 \f
 (provide 'multi-isearch)
 (provide 'misearch)