1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-15 09:47:20 +00:00

Fix next-page for dired (Bug#31061)

* lisp/textmodes/page-ext.el (next-page): Don't go back any pages if
COUNT is 0.  For negative COUNT, end with point just after the last
delimiter.

Co-authored-by: Noam Postavsky <npostavs@gmail.com>
This commit is contained in:
Marco Wahl 2018-04-27 13:50:08 +02:00 committed by Noam Postavsky
parent 74ff5ade80
commit 8a6521260d

View File

@ -304,19 +304,21 @@ With arg (prefix if interactive), move that many pages."
(or count (setq count 1))
(widen)
;; Cannot use forward-page because of problems at page boundaries.
(while (and (> count 0) (not (eobp)))
(if (re-search-forward page-delimiter nil t)
nil
(goto-char (point-max)))
(setq count (1- count)))
;; If COUNT is negative, we want to go back -COUNT + 1 page boundaries.
;; The first page boundary we reach is the top of the current page,
;; which doesn't count.
(while (and (< count 1) (not (bobp)))
(if (re-search-backward page-delimiter nil t)
(goto-char (match-beginning 0))
(goto-char (point-min)))
(setq count (1+ count)))
(if (>= count 0)
(while (and (> count 0) (not (eobp)))
(if (re-search-forward page-delimiter nil t)
nil
(goto-char (point-max)))
(setq count (1- count)))
;; If COUNT is negative, we want to go back -COUNT + 1 page boundaries.
;; The first page boundary we reach is the top of the current page,
;; which doesn't count.
(while (and (< count 1) (not (bobp)))
(if (re-search-backward page-delimiter nil t)
(when (= count 0)
(goto-char (match-end 0)))
(goto-char (point-min)))
(setq count (1+ count))))
(narrow-to-page)
(goto-char (point-min))
(recenter 0))