[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: signalling errors in redisplay
From: |
Gerd Möllmann |
Subject: |
Re: signalling errors in redisplay |
Date: |
Sat, 08 Dec 2001 13:00:12 +0100 |
User-agent: |
KNode/0.6 |
Stefan Monnier wrote:
>>>>>> "Richard" == Richard Stallman <rms@gnu.org> writes:
>> I don't know if we can expect to find any universal solution.
>
> How about:
>
> If Fsignal detects we're inside redisplay, it pushes the signal
> onto a list of "pending redisplay errors". At the end of redisplay,
> we check the list and throw the corresponding signals.
>
> Of course, this has several problems:
> - The code might be seriously confused if Fsignal returns normally.
> - I have no idea what it means to throw several signals.
> - Plus all the problems that my feeble mind can't even imagine because
> of its lack of understanding of how the redisplay code really works.
As Richard already said, the loop is in the main loop calling redisplay
for the error output, redisplay signalling an error again because the
buffer it wanted to redisplay originally hasn't been redisplayed, main
loop calling redisplay etc. ad infinitum.
Maybe one can break out of that loop by letting Fsignal set a flag that
the buffer in error shouldn't be redisplayed anymore, instead of evaling
Lisp code withing redisplay in a condition-case. But this might
render Emacs as unusable as in an infinite loop, depending on where the
error is signaled.
In other words, I don't have a good solution for this. What's there is
the best I could think of.
(Please note that I'm not reading bug-gnu-emacs; please CC me if you
want me to see a message.)