From b69863f29d2252585cfcc29add96d23deae7167d Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 12 Jan 1996 21:23:05 +0000 Subject: [PATCH] (forward-page): Simplify how we avoid getting stuck when moving backwards. --- lisp/textmodes/page.el | 22 ++++++++++------------ 1 file 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) -- 2.39.2