diff options
author | Marco Wahl <marcowahlsoft@gmail.com> | 2018-04-27 13:50:08 +0200 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2018-05-02 20:35:20 -0400 |
commit | 8a6521260dc650b4b713ea8bc71348cbe730f6e4 (patch) | |
tree | 370034aad2a21ff4b76b2e2d5ac671439e7630cd | |
parent | 74ff5ade8002a1a2cc8956607310e5466f2ed596 (diff) | |
download | emacs-8a6521260dc650b4b713ea8bc71348cbe730f6e4.tar.gz |
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>
-rw-r--r-- | lisp/textmodes/page-ext.el | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index fbdae5892a1..92fce4d364b 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el @@ -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)) |