2001-02-19 Gerd Moellmann <gerd@gnu.org>
+ * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
+ set redisplaying_p to 0 here instead of in Frecursive_edit.
+ (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
+ set redisplaying_p.
+
* xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
New variables.
(syms_of_xdisp): Initialize new variables.
cancel_busy_cursor ();
#endif
+ /* This function may have been called from a debugger called from
+ within redisplay, for instance by Edebugging a function called
+ from fontification-functions. We want to allow redisplay in
+ the debugging session.
+
+ The recursive edit is left with a `(throw exit ...)'. The `exit'
+ tag is not caught anywhere in redisplay, i.e. when we leave the
+ recursive edit, the original redisplay leading to the recursive
+ edit will be unwound. The outcome should therefore be safe. */
+ specbind (Qinhibit_redisplay, Qnil);
+ redisplaying_p = 0;
+
val = command_loop ();
if (EQ (val, Qt))
Fsignal (Qquit, Qnil);
command_loop_level++;
update_mode_lines = 1;
- /* This function may have been called from a debugger called from
- within redisplay, for instance by Edebugging a function called
- from fontification-functions. We want to allow redisplay in
- the debugging session.
-
- The recursive edit is left with a `(throw exit ...)'. The `exit'
- tag is not caught anywhere in redisplay, i.e. when we leave the
- recursive edit, the original redisplay leading to the recursive
- edit will be unwound. The outcome should therefore be safe. */
- specbind (Qinhibit_redisplay, Qnil);
- redisplaying_p = 0;
-
record_unwind_protect (recursive_edit_unwind,
(command_loop_level
&& current_buffer != XBUFFER (XWINDOW (selected_window)->buffer))