diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2002-09-24 08:35:27 +0000 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2002-09-24 08:35:27 +0000 |
commit | b47ab35a423ab5d9700c7b84502e6eba2295562d (patch) | |
tree | cd70aa83d8cb4a7ecaebf156009070d840a436f1 /lisp | |
parent | bf6f9521390d80aff0f9406c85544fa7f6df59a6 (diff) | |
download | emacs-b47ab35a423ab5d9700c7b84502e6eba2295562d.tar.gz |
(occur-find-match): New function.
(occur-next, occur-prev): Use it.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/replace.el | 34 |
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. |