Commit 1db0076e authored by Gerd Moellmann's avatar Gerd Moellmann
Browse files

(Frecursive_edit): Make sure redisplay can happen.

(show_help_echo): Use safe_call instead of
call_function; use safe_eval instead of eval_form.
parent a18c0a47
......@@ -939,6 +939,18 @@ 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))
......@@ -1960,10 +1972,10 @@ show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
args[1] = window;
args[2] = object;
args[3] = pos;
help = call_function (4, args);
help = safe_call (4, args);
}
else
help = eval_form (help);
help = safe_eval (help);
if (!STRINGP (help))
return;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment