summaryrefslogtreecommitdiff
path: root/lisp/textmodes/page.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-01-12 21:23:05 +0000
committerRichard M. Stallman <rms@gnu.org>1996-01-12 21:23:05 +0000
commitb69863f29d2252585cfcc29add96d23deae7167d (patch)
tree706613585e107cd051c12f42ae41e1256c09b25d /lisp/textmodes/page.el
parent1caf38ebbc2750d7639a3aed1525771642492cd8 (diff)
downloademacs-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.el22
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)