summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2002-09-24 08:35:27 +0000
committerJuanma Barranquero <lekktu@gmail.com>2002-09-24 08:35:27 +0000
commitb47ab35a423ab5d9700c7b84502e6eba2295562d (patch)
treecd70aa83d8cb4a7ecaebf156009070d840a436f1 /lisp
parentbf6f9521390d80aff0f9406c85544fa7f6df59a6 (diff)
downloademacs-b47ab35a423ab5d9700c7b84502e6eba2295562d.tar.gz
(occur-find-match): New function.
(occur-next, occur-prev): Use it.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/replace.el34
1 files changed, 13 insertions, 21 deletions
diff --git a/lisp/replace.el b/lisp/replace.el
index f24a5fde9df..c2c39cbd219 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -544,36 +544,28 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it.
(select-window window)
(goto-char pos))))
-(defun occur-next (&optional n)
- "Move to the Nth (default 1) next match in an Occur mode buffer."
- (interactive "p")
+(defun occur-find-match (n search message)
(if (not n) (setq n 1))
(let ((r))
(while (> n 0)
- (if (get-text-property (point) 'occur-point)
- (forward-char 1))
- (setq r (next-single-property-change (point) 'occur-point))
+ (setq r (funcall search (point) 'occur-match))
+ (and r
+ (get-text-property r 'occur-match)
+ (setq r (funcall search r 'occur-match)))
(if r
- (goto-char r)
- (error "No more matches"))
+ (goto-char r)
+ (error message))
(setq n (1- n)))))
+(defun occur-next (&optional n)
+ "Move to the Nth (default 1) next match in an Occur mode buffer."
+ (interactive "p")
+ (occur-find-match n #'next-single-property-change "No more matches"))
+
(defun occur-prev (&optional n)
"Move to the Nth (default 1) previous match in an Occur mode buffer."
(interactive "p")
- (if (not n) (setq n 1))
- (let ((r))
- (while (> n 0)
-
- (setq r (get-text-property (point) 'occur-point))
- (if r (forward-char -1))
-
- (setq r (previous-single-property-change (point) 'occur-point))
- (if r
- (goto-char (- r 1))
- (error "No earlier matches"))
-
- (setq n (1- n)))))
+ (occur-find-match n #'previous-single-property-change "No earlier matches"))
(defcustom list-matching-lines-default-context-lines 0
"*Default number of context lines included around `list-matching-lines' matches.