Mercurial > emacs
changeset 44722:c4139de15915
(scroll-all-page-down-all, scroll-all-page-up-all): Ignore the error if one
of the other windows being scrolled reaches the end/start of its buffer.
(scroll-all-beginning-of-buffer-all, scroll-all-end-of-buffer-all): New
functions to track `beginning-of-buffer' and `end-of-buffer'.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sun, 21 Apr 2002 16:30:28 +0000 |
parents | 193981425f19 |
children | f5b7b7055a64 |
files | lisp/scroll-all.el |
diffstat | 1 files changed, 62 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/scroll-all.el Sun Apr 21 14:43:31 2002 +0000 +++ b/lisp/scroll-all.el Sun Apr 21 16:30:28 2002 +0000 @@ -63,51 +63,77 @@ "Scroll down all visible windows." (interactive "P") (let ((num-windows (count-windows)) - (count 1)) - (if (> num-windows 1) - (progn (other-window 1) - (while (< count num-windows) - (if (not (eq (point) (point-max))) - (progn (call-interactively 'next-line))) - (other-window 1) - (setq count (1+ count))))))) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (if (not (eq (point) (point-max))) + (call-interactively 'next-line)) + (other-window 1) + (setq count (1+ count)))))) (defun scroll-all-scroll-up-all (arg) "Scroll up all visible windows." (interactive "P") (let ((num-windows (count-windows)) - (count 1)) - (if (> num-windows 1) - (progn (other-window 1) - (while (< count num-windows) - (if (not (eq (point) (point-min))) - (progn (call-interactively 'previous-line))) - (other-window 1) - (setq count (1+ count))))))) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (if (not (eq (point) (point-min))) + (call-interactively 'previous-line)) + (other-window 1) + (setq count (1+ count)))))) (defun scroll-all-page-down-all (arg) "Page down in all visible windows." (interactive "P") (let ((num-windows (count-windows)) - (count 1)) - (if (> num-windows 1) - (progn (other-window 1) - (while (< count num-windows) - (call-interactively 'scroll-up) - (other-window 1) - (setq count (1+ count))))))) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (condition-case nil + (call-interactively 'scroll-up) (end-of-buffer nil)) + (other-window 1) + (setq count (1+ count)))))) (defun scroll-all-page-up-all (arg) "Page up in all visible windows." (interactive "P") (let ((num-windows (count-windows)) - (count 1)) - (if (> num-windows 1) - (progn (other-window 1) - (while (< count num-windows) - (call-interactively 'scroll-down) - (other-window 1) - (setq count (1+ count))))))) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (condition-case nil + (call-interactively 'scroll-down) (beginning-of-buffer nil)) + (other-window 1) + (setq count (1+ count)))))) + +(defun scroll-all-beginning-of-buffer-all (arg) + "Go to the beginning of the buffer in all visible windows." + (interactive "P") + (let ((num-windows (count-windows)) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (beginning-of-buffer) + (other-window 1) + (setq count (1+ count)))))) + +(defun scroll-all-end-of-buffer-all (arg) + "Go to the end of the buffer in all visible windows." + (interactive "P") + (let ((num-windows (count-windows)) + (count 1)) + (when (> num-windows 1) + (other-window 1) + (while (< count num-windows) + (end-of-buffer) + (other-window 1) + (setq count (1+ count)))))) (defun scroll-all-check-to-scroll () @@ -120,8 +146,12 @@ ((eq this-command 'scroll-up) (call-interactively 'scroll-all-page-down-all)) ((eq this-command 'scroll-down) - (call-interactively 'scroll-all-page-up-all)))) - + (call-interactively 'scroll-all-page-up-all)) + ((eq this-command 'beginning-of-buffer) + (call-interactively 'scroll-all-beginning-of-buffer-all)) + ((eq this-command 'end-of-buffer) + (call-interactively 'scroll-all-end-of-buffer-all)))) + ;;;###autoload (defun scroll-all-mode (arg)