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)