diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-01-12 21:23:05 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-01-12 21:23:05 +0000 |
commit | b69863f29d2252585cfcc29add96d23deae7167d (patch) | |
tree | 706613585e107cd051c12f42ae41e1256c09b25d /lisp/textmodes/page.el | |
parent | 1caf38ebbc2750d7639a3aed1525771642492cd8 (diff) | |
download | emacs-b69863f29d2252585cfcc29add96d23deae7167d.tar.gz |
(forward-page): Simplify how we avoid getting stuck when moving backwards.
Diffstat (limited to 'lisp/textmodes/page.el')
-rw-r--r-- | lisp/textmodes/page.el | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index d84d7f5a07b..c110ca842ed 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el @@ -42,19 +42,17 @@ A page boundary is any line whose beginning matches the regexp (goto-char (point-max))) (setq count (1- count))) (while (and (< count 0) (not (bobp))) + ;; In case the page-delimiter matches the null string, + ;; don't find a match without moving. + (and (save-excursion (re-search-backward page-delimiter nil t)) + (= (match-end 0) (point)) + (goto-char (match-beginning 0))) (forward-char -1) - (let (result (end (point))) - ;; If we find a match that ends where we started searching, - ;; look for another one. - (while (and (setq result (re-search-backward page-delimiter nil t)) - (= (match-end 0) end)) - ;; Just search again. - ) - (if result - ;; We found one--move to the end of it. - (goto-char (match-end 0)) - ;; We found nothing--go to beg of buffer. - (goto-char (point-min)))) + (if (re-search-backward page-delimiter nil t) + ;; We found one--move to the end of it. + (goto-char (match-end 0)) + ;; We found nothing--go to beg of buffer. + (goto-char (point-min))) (setq count (1+ count)))) (defun backward-page (&optional count) |