(change_frame_size_1): Save current buffer
authorRichard M. Stallman <rms@gnu.org>
Sat, 30 Aug 1997 17:51:22 +0000 (17:51 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 30 Aug 1997 17:51:22 +0000 (17:51 +0000)
around calling Fset_window_buffer.

src/dispnew.c

index 3664359..a7441b9 100644 (file)
@@ -2126,6 +2126,7 @@ change_frame_size_1 (frame, newheight, newwidth, pretend, delay)
 {
   int new_frame_window_width;
   unsigned int total_glyphs;
+  int count = specpdl_ptr - specpdl;
 
   /* If we can't deal with the change now, queue it for later.  */
   if (delay)
@@ -2232,9 +2233,13 @@ change_frame_size_1 (frame, newheight, newwidth, pretend, delay)
 
   UNBLOCK_INPUT;
 
+  record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
+
   /* This isn't quite a no-op: it runs window-configuration-change-hook.  */
   Fset_window_buffer (FRAME_SELECTED_WINDOW (frame),
                      XWINDOW (FRAME_SELECTED_WINDOW (frame))->buffer);
+
+  unbind_to (count, Qnil);
 }
 \f
 DEFUN ("send-string-to-terminal", Fsend_string_to_terminal,