# HG changeset patch # User Richard M. Stallman # Date 821481785 0 # Node ID d85151c5699d265ce3e860e1edc058ac13b71078 # Parent 93175ed23e0168fbd2274e705110cd22d08de507 (forward-page): Simplify how we avoid getting stuck when moving backwards. diff -r 93175ed23e01 -r d85151c5699d lisp/textmodes/page.el --- a/lisp/textmodes/page.el Fri Jan 12 21:14:51 1996 +0000 +++ b/lisp/textmodes/page.el Fri Jan 12 21:23:05 1996 +0000 @@ -42,19 +42,17 @@ (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)