]> git.eshelyaron.com Git - emacs.git/commitdiff
(change-log-mode): Make and set buffer-local variable
authorJuri Linkov <juri@jurta.org>
Mon, 22 Oct 2007 23:45:05 +0000 (23:45 +0000)
committerJuri Linkov <juri@jurta.org>
Mon, 22 Oct 2007 23:45:05 +0000 (23:45 +0000)
isearch-buffers-next-buffer-function to change-log-next-buffer.
Call isearch-buffers-minor-mode.
(change-log-next-buffer): New function.

lisp/ChangeLog
lisp/add-log.el

index c828474c12fc9110f2755468d41c5fd6f25c8207..1ca5e67c6ca15e371222e8d140ef99c9b08c628d 100644 (file)
@@ -1,3 +1,17 @@
+2007-10-22  Juri Linkov  <juri@jurta.org>
+
+       * isearch-multi.el: New file.
+
+       * isearch.el (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.
+
+       * add-log.el (change-log-mode): Make and set buffer-local variable
+       isearch-buffers-next-buffer-function to change-log-next-buffer.
+       Call isearch-buffers-minor-mode.
+       (change-log-next-buffer): New function.
+
 2007-10-22  Carsten Dominik  <dominik@science.uva.nl>
 
        * org.el (org-read-date-get-relative): New function.
index a58d6318670887a8cf745ba2015a4b80d6106491..5ec498619061774a8891f9f259652120b4252fa2 100644 (file)
@@ -760,7 +760,29 @@ Runs `change-log-mode-hook'.
        'change-log-resolve-conflict)
   (set (make-local-variable 'adaptive-fill-regexp) "\\s *")
   (set (make-local-variable 'font-lock-defaults)
-       '(change-log-font-lock-keywords t nil nil backward-paragraph)))
+       '(change-log-font-lock-keywords t nil nil backward-paragraph))
+  (set (make-local-variable 'isearch-buffers-next-buffer-function)
+       'change-log-next-buffer)
+  (isearch-buffers-minor-mode))
+
+(defun change-log-next-buffer (&optional buffer wrap)
+  "Return the next buffer in the series of ChangeLog file buffers.
+This function is used for multiple buffers isearch.
+A sequence of buffers is formed by ChangeLog files with decreasing
+numeric file name suffixes in the directory of the initial ChangeLog
+file were isearch was started."
+  (let* ((name (change-log-name))
+        (files (cons name (sort (file-expand-wildcards
+                                 (concat name "[-.][0-9]*"))
+                                (lambda (a b)
+                                  (version< (substring b (length name))
+                                            (substring a (length name)))))))
+        (files (if isearch-forward files (reverse files))))
+    (find-file-noselect
+     (if wrap
+        (car files)
+       (cadr (member (file-name-nondirectory (buffer-file-name buffer))
+                    files))))))
 
 ;; It might be nice to have a general feature to replace this.  The idea I
 ;; have is a variable giving a regexp matching text which should not be