summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2021-08-18 16:14:29 +0300
committerEli Zaretskii <eliz@gnu.org>2021-08-18 16:14:29 +0300
commitee812f2a987d295659c041c577aac8db93de819f (patch)
tree9667cf885d98d73a980b3261693d4c0f582eab0a
parentbf4f7388b6d0373d239b0aeedcc1a77549371320 (diff)
downloademacs-ee812f2a987d295659c041c577aac8db93de819f.tar.gz
Yet another place inside redisplay_window to prevent quitting
* src/xdisp.c (handle_single_display_spec): Inhibit quitting around the call to lookup_image. (Bug#44448)
-rw-r--r--src/xdisp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index ceb0fa7e64d..ada9ed6c22b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5788,8 +5788,15 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
#ifdef HAVE_WINDOW_SYSTEM
else
{
+ ptrdiff_t count = SPECPDL_INDEX ();
+
it->what = IT_IMAGE;
+ /* Don't allow quitting from lookup_image, for when we are
+ displaying a non-selected window, and the buffer's point
+ was temporarily moved to the window-point. */
+ specbind (Qinhibit_quit, Qt);
it->image_id = lookup_image (it->f, value, it->face_id);
+ unbind_to (count, Qnil);
it->position = start_pos;
it->object = NILP (object) ? it->w->contents : object;
it->method = GET_FROM_IMAGE;