[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: non-local exits in redisplay
From: |
Stefan Monnier |
Subject: |
Re: non-local exits in redisplay |
Date: |
Sun, 11 Oct 2020 18:31:52 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> through xsignal, it can often cause an infinite redisplay loop. This seems
> to be due to xsignal causing a nonlocal exit and the next redisplay will be
> begin, but unless there's something different, the same code that caused the
> initial xsignal will execute again and hence the infinte loop. Since I do
> see code that calls lisp functions inside redisplay I was wondering how one
> should guard against such non-local exits inside redisplay.
In `src/xdisp.c` there's things like `safe_call` (as well as
`safe_call1` and `safe_call2`) for that.
IIRC it uses the underlying condition-case machinery.
Stefan