2000-03-08 Gerd Moellmann <gerd@gnu.org>
+ * xdisp.c (display_echo_area): Temporarily inhibit garbage
+ collection.
+
* xfns.c: Remove obsolete code in #if 0.
(Fx_focus_frame): New function.
display_echo_area (w)
struct window *w;
{
- int i, no_message_p, window_height_changed_p;
+ int i, no_message_p, window_height_changed_p, count;
+
+ /* Temporarily disable garbage collections while displaying the echo
+ area. This is done because a GC can print a message itself.
+ That message would modify the echo area buffer's contents while a
+ redisplay of the buffer is going on, and seriously confuse
+ redisplay. */
+ count = inhibit_garbage_collection ();
/* If there is no message, we must call display_echo_area_1
nevertheless because it resizes the window. But we will have to
if (no_message_p)
echo_area_buffer[i] = Qnil;
-
+
+ unbind_to (count, Qnil);
return window_height_changed_p;
}