summaryrefslogtreecommitdiff
path: root/lisp/add-log.el
diff options
context:
space:
mode:
authorTeodor Zlatanov <tzz@lifelogs.com>2008-08-05 18:37:12 +0000
committerTeodor Zlatanov <tzz@lifelogs.com>2008-08-05 18:37:12 +0000
commit7be2b0943a334fcc902c1dbf177c01f4010b2575 (patch)
treed3afb28060657f34f01f8d2bf4ed8a987be6ee7a /lisp/add-log.el
parent95889848e895a3da6a97531b4e778dfaec185b72 (diff)
(change-log-next-error, change-log-mode): Add support
for `next-error' to call `change-log-goto-source' on named files in a ChangeLog.
Diffstat (limited to 'lisp/add-log.el')
-rw-r--r--lisp/add-log.el28
1 files changed, 27 insertions, 1 deletions
diff --git a/lisp/add-log.el b/lisp/add-log.el
index d0a21e8286e..1acc064beff 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -511,6 +511,29 @@ comma-separated list."
(error (format "Cannot find matches for tag `%s' in `%s'"
tag file))))))))
+(defun change-log-next-error (&optional argp reset)
+ "Move to the Nth (default 1) next match in an Occur mode buffer.
+Compatibility function for \\[next-error] invocations."
+ (interactive "p")
+ (let* ((argp (or argp 0))
+ (count (abs argp)) ; how many cycles
+ (down (< argp 0)) ; are we going down? (is argp negative?)
+ (up (not down))
+ (search-function (if up 're-search-forward 're-search-backward)))
+
+ ;; set the starting position
+ (goto-char (cond (reset (point-min))
+ (down (line-beginning-position))
+ (up (line-end-position))
+ ((point))))
+
+ (funcall search-function change-log-file-names-re nil t count))
+
+ (beginning-of-line)
+ ;; if we found a place to visit...
+ (when (looking-at change-log-file-names-re)
+ (change-log-goto-source)))
+
(defvar change-log-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [?\C-c ?\C-p] 'add-log-edit-prev-comment)
@@ -997,7 +1020,10 @@ Runs `change-log-mode-hook'.
(set (make-local-variable 'beginning-of-defun-function)
'change-log-beginning-of-defun)
(set (make-local-variable 'end-of-defun-function)
- 'change-log-end-of-defun))
+ 'change-log-end-of-defun)
+ ;; next-error function glue
+ (setq next-error-function 'change-log-next-error)
+ (setq next-error-last-buffer (current-buffer)))
(defun change-log-next-buffer (&optional buffer wrap)
"Return the next buffer in the series of ChangeLog file buffers.