In Fset_window_configuration install revison of reverted fix.
authorMartin Rudalics <rudalics@gmx.at>
Tue, 28 Aug 2012 14:09:43 +0000 (16:09 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Tue, 28 Aug 2012 14:09:43 +0000 (16:09 +0200)
* window.c (Fset_window_configuration): Install revision of reverted
fix.

src/ChangeLog
src/window.c

index 4bde0cf..2521ddc 100644 (file)
@@ -1,7 +1,8 @@
 2012-08-28  Martin Rudalics  <rudalics@gmx.at>
 
        * window.c (Fset_window_configuration): Remove handling of
-       auto-buffer-name window parameter.
+       auto-buffer-name window parameter.  Install revision of reverted
+       fix.
 
 2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
 
index 070cc23..38124cb 100644 (file)
@@ -5615,6 +5615,21 @@ the return value is nil.  Otherwise the value is t.  */)
       int previous_frame_menu_bar_lines = FRAME_MENU_BAR_LINES (f);
       int previous_frame_tool_bar_lines = FRAME_TOOL_BAR_LINES (f);
 
+      /* Don't do this within the main loop below: This may call Lisp
+        code and is thus potentially unsafe while input is blocked.  */
+      for (k = 0; k < saved_windows->header.size; k++)
+       {
+         p = SAVED_WINDOW_N (saved_windows, k);
+         window = p->window;
+         w = XWINDOW (window);
+         if (!NILP (w->buffer)
+             && !EQ (w->buffer, p->buffer)
+             && !NILP (BVAR (XBUFFER (p->buffer), name)))
+           /* If a window we restore gets another buffer, record the
+              window's old buffer.  */
+           call1 (Qrecord_window_buffer, window);
+       }
+
       /* The mouse highlighting code could get screwed up
         if it runs during this.  */
       BLOCK_INPUT;