]> git.eshelyaron.com Git - emacs.git/commitdiff
(scroll-all-page-down-all, scroll-all-page-up-all): Ignore the error if one
authorGlenn Morris <rgm@gnu.org>
Sun, 21 Apr 2002 16:30:28 +0000 (16:30 +0000)
committerGlenn Morris <rgm@gnu.org>
Sun, 21 Apr 2002 16:30:28 +0000 (16:30 +0000)
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'.

lisp/scroll-all.el

index a25f30eefe091da67adb7d98d8469b0d5dd7caaf..0126a6016171bd51f6b31087401029c2a9512acf 100644 (file)
@@ -63,51 +63,77 @@ use either M-x customize or the function `scroll-all-mode'."
   "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 @@ use either M-x customize or the function `scroll-all-mode'."
    ((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)