]> git.eshelyaron.com Git - emacs.git/commitdiff
(replace_buffer_in_all_windows): New function.
authorRichard M. Stallman <rms@gnu.org>
Tue, 2 Jan 1996 08:55:11 +0000 (08:55 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 2 Jan 1996 08:55:11 +0000 (08:55 +0000)
Like Freplace_buffer_in_windows but really does all frames.

src/window.c

index be1722ae3e4e67772687b9853fb249ae335d7ec9..fd39556b8473b1ab94d67c63b9668c1dd436d8f8 100644 (file)
@@ -1624,6 +1624,36 @@ DEFUN ("replace-buffer-in-windows", Freplace_buffer_in_windows,
     }
   return Qnil;
 }
+
+/* Replace BUFFER with some other buffer in all windows
+   of all frames, even those on other keyboards.  */
+
+void
+replace_buffer_in_all_windows (buffer)
+     Lisp_Object buffer;
+{
+  Lisp_Object tail, frame;
+
+#ifdef MULTI_FRAME
+  Lisp_Object old_selected;
+
+  old_selected = selected_window;
+
+  /* A single call to window_loop won't do the job
+     because it only considers frames on the current keyboard.
+     So loop manually over frames, and handle each one.  */
+  FOR_EACH_FRAME (tail, frame)
+    {
+      Fselect_window (FRAME_SELECTED_WINDOW (XFRAME (frame)));
+
+      window_loop (UNSHOW_BUFFER, buffer, 0, frame);
+    }
+
+  Fselect_window (old_selected);
+#else
+  window_loop (UNSHOW_BUFFER, buffer, 0, Qt);
+#endif
+}
 \f
 /* Set the height of WINDOW and all its inferiors.  */