changeset 100738:fdd1168c1df6

(reftex-isearch-switch-to-next-file): Use `find-file-noselect' instead of `find-file' (for Emacs 22 and 23). (reftex-isearch-minor-mode): If `multi-isearch-next-buffer-function' is bound set it to `reftex-isearch-switch-to-next-file'. Otherwise, set 4 obsolete variables for backward-compatibility with Emacs 22.
author Juri Linkov <juri@jurta.org>
date Sun, 28 Dec 2008 23:46:34 +0000
parents ee29f2a93b76
children dd817152aca5
files lisp/textmodes/reftex-global.el
diffstat 1 files changed, 26 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/reftex-global.el	Sun Dec 28 23:45:53 2008 +0000
+++ b/lisp/textmodes/reftex-global.el	Sun Dec 28 23:46:34 2008 +0000
@@ -343,6 +343,14 @@
                               (buffer-name buf)))
             (error "Abort"))))))
 
+;;; Multi-file RefTeX Isearch
+
+;;; `reftex-isearch-wrap-function', `reftex-isearch-push-state-function',
+;;; `reftex-isearch-pop-state-function', `reftex-isearch-isearch-search'
+;;; functions remain here only for backward-compatibility with Emacs 22
+;;; and are obsolete since Emacs 23 that supports a single function
+;;; variable `multi-isearch-next-buffer-function'.
+
 (defun reftex-isearch-wrap-function ()
   (if (not isearch-word)
       (switch-to-buffer 
@@ -416,7 +424,7 @@
 	  (setq flist (cdr flist)))
 	(setq flist (cdr flist)))
       (when flist
-	(find-file (car flist))))))
+	(find-file-noselect (car flist))))))
 
 ;;;###autoload
 (defun reftex-isearch-minor-mode (&optional arg)
@@ -438,23 +446,28 @@
 	    (dolist (crt-buf (buffer-list))
 	      (with-current-buffer crt-buf
 		(when reftex-mode
-		  (set (make-local-variable 'isearch-wrap-function)
-		       'reftex-isearch-wrap-function)
-		  (set (make-local-variable 'isearch-search-fun-function)
-		       (lambda () 'reftex-isearch-isearch-search))
-		  (set (make-local-variable 'isearch-push-state-function)
-		       'reftex-isearch-push-state-function)
-		  (set (make-local-variable 'isearch-next-buffer-function)
-		       'reftex-isearch-switch-to-next-file)
+		  (if (boundp 'multi-isearch-next-buffer-function)
+		      (set (make-local-variable 'multi-isearch-next-buffer-function)
+			   'reftex-isearch-switch-to-next-file)
+		    (set (make-local-variable 'isearch-wrap-function)
+			 'reftex-isearch-wrap-function)
+		    (set (make-local-variable 'isearch-search-fun-function)
+			 (lambda () 'reftex-isearch-isearch-search))
+		    (set (make-local-variable 'isearch-push-state-function)
+			 'reftex-isearch-push-state-function)
+		    (set (make-local-variable 'isearch-next-buffer-function)
+			 'reftex-isearch-switch-to-next-file))
 		  (setq reftex-isearch-minor-mode t))))
 	    (add-hook 'reftex-mode-hook 'reftex-isearch-minor-mode))
 	(dolist (crt-buf (buffer-list))
 	  (with-current-buffer crt-buf
 	    (when reftex-mode
-	      (kill-local-variable 'isearch-wrap-function)
-	      (kill-local-variable 'isearch-search-fun-function)
-	      (kill-local-variable 'isearch-push-state-function)
-	      (kill-local-variable 'isearch-next-buffer-function)
+	      (if (boundp 'multi-isearch-next-buffer-function)
+		  (kill-local-variable 'multi-isearch-next-buffer-function)
+		(kill-local-variable 'isearch-wrap-function)
+		(kill-local-variable 'isearch-search-fun-function)
+		(kill-local-variable 'isearch-push-state-function)
+		(kill-local-variable 'isearch-next-buffer-function))
 	      (setq reftex-isearch-minor-mode nil))))
 	(remove-hook 'reftex-mode-hook 'reftex-isearch-minor-mode)))
     ;; Force modeline redisplay.