From 980a2d69dd1eb60c210d73c5b1fd9a0e4c5d966f Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Mon, 19 Feb 2001 13:58:17 +0000 Subject: [PATCH] (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. --- src/ChangeLog | 5 +++++ src/keyboard.c | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6da6931083e..80aedce45f2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2001-02-19 Gerd Moellmann + * 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. diff --git a/src/keyboard.c b/src/keyboard.c index 15c05e8f44e..cc2b41c4b9d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -927,6 +927,18 @@ recursive_edit_1 () 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); @@ -969,18 +981,6 @@ This function is called by the editor initialization to begin editing.") 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)) -- 2.39.5