Mercurial > emacs
changeset 10030:f0264fb75509
(rmail-summary-scroll-msg-up): If at end of message,
advance to the next message.
(rmail-summary-scroll-msg-down): If at beginning of message,
advance to the previous message.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 20 Nov 1994 15:01:14 +0000 |
parents | fdc1155b891c |
children | 324e027f01bc |
files | lisp/mail/rmailsum.el |
diffstat | 1 files changed, 45 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmailsum.el Sat Nov 19 20:45:17 1994 +0000 +++ b/lisp/mail/rmailsum.el Sun Nov 20 15:01:14 1994 +0000 @@ -864,22 +864,55 @@ (set-buffer obuf)))))) (defun rmail-summary-scroll-msg-up (&optional dist) - "Scroll the Rmail window forward." + "Scroll the Rmail window forward. +If the Rmail window is displaying the end of a message, +advance to the next message." (interactive "P") - (let ((other-window-scroll-buffer rmail-buffer)) - (if (get-buffer-window rmail-buffer) - (scroll-other-window dist) - ;; This forces rmail-buffer to be sized correctly later. - (display-buffer rmail-buffer) - (setq rmail-current-message nil)))) + (if (eq dist '-) + (rmail-summary-scroll-msg-down nil) + (let ((rmail-buffer-window (get-buffer-window rmail-buffer))) + (if rmail-buffer-window + (if (let ((rmail-summary-window (selected-window))) + (select-window rmail-buffer-window) + (prog1 + ;; Is EOB visible in the buffer? + (save-excursion + (let ((ht (window-height (selected-window)))) + (move-to-window-line (- ht 2)) + (end-of-line) + (eobp))) + (select-window rmail-summary-window))) + (rmail-summary-next-msg (or dist 1)) + (let ((other-window-scroll-buffer rmail-buffer)) + (scroll-other-window dist))) + ;; This forces rmail-buffer to be sized correctly later. + (display-buffer rmail-buffer) + (setq rmail-current-message nil))))) (defun rmail-summary-scroll-msg-down (&optional dist) - "Scroll the Rmail window backward." + "Scroll the Rmail window backward. +If the Rmail window is displaying the beginning of a message, +advance to the previous message." (interactive "P") - (rmail-summary-scroll-msg-up - (cond ((eq dist '-) nil) - ((null dist) '-) - (t (- (prefix-numeric-value dist)))))) + (if (eq dist '-) + (rmail-summary-scroll-msg-up nil) + (let ((rmail-buffer-window (get-buffer-window rmail-buffer))) + (if rmail-buffer-window + (if (let ((rmail-summary-window (selected-window))) + (select-window rmail-buffer-window) + (prog1 + ;; Is BOB visible in the buffer? + (save-excursion + (move-to-window-line 0) + (beginning-of-line) + (bobp)) + (select-window rmail-summary-window))) + (rmail-summary-previous-msg (or dist 1)) + (let ((other-window-scroll-buffer rmail-buffer)) + (scroll-other-window-down dist))) + ;; This forces rmail-buffer to be sized correctly later. + (display-buffer rmail-buffer) + (setq rmail-current-message nil))))) (defun rmail-summary-beginning-of-message () "Show current message from the beginning."