diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-11-06 22:42:41 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-11-06 22:42:41 +0000 |
commit | cb70d91574753271039abb2abae7f314b5d97ba9 (patch) | |
tree | dafeb3c7a057efe5c4d9dfd07d4f29f009993c9e /lisp/textmodes/page.el | |
parent | 22819cd94f1338130cd1c97f64a6b3451f5b82cd (diff) | |
download | emacs-cb70d91574753271039abb2abae7f314b5d97ba9.tar.gz |
(narrow-to-page): With negative arg, move back one extra
page unless we start right after a page delimiter.
Diffstat (limited to 'lisp/textmodes/page.el')
-rw-r--r-- | lisp/textmodes/page.el | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index aecfbd698d7..2cc0533535d 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el @@ -89,7 +89,16 @@ thus showing a page other than the one point was originally in." (if (> arg 0) (forward-page arg) (if (< arg 0) - (forward-page (1- arg)))) + (let ((adjust 0) + (opoint (point))) + ;; If we are not now at the beginning of a page, + ;; move back one extra time, to get to the start of this page. + (save-excursion + (beginning-of-line) + (or (and (looking-at page-delimiter) + (eq (match-end 0) opoint)) + (setq adjust 1))) + (forward-page (- arg adjust))))) ;; Find the end of the page. (forward-page) ;; If we stopped due to end of buffer, stay there. |