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:
parent
74ff5ade80
commit
8a6521260d
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user