# HG changeset patch # User Juanma Barranquero # Date 1032856527 0 # Node ID b052c0d51fd49fc3307fa17d792803753d58ca89 # Parent 8cf0546cad8947bdfd991e23eaa315d12cb47f22 (occur-find-match): New function. (occur-next, occur-prev): Use it. diff -r 8cf0546cad89 -r b052c0d51fd4 lisp/replace.el --- a/lisp/replace.el Tue Sep 24 04:15:02 2002 +0000 +++ b/lisp/replace.el Tue Sep 24 08:35:27 2002 +0000 @@ -544,36 +544,28 @@ (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.