# HG changeset patch # User Glenn Morris # Date 1019406628 0 # Node ID c4139de15915ece1c0414cb1f6bec0c9b9cd036f # Parent 193981425f190f4ab3f9d1564ea83fc163a09a03 (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'. diff -r 193981425f19 -r c4139de15915 lisp/scroll-all.el --- 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)