bug-gnu-emacs
[Top][All Lists]
Advanced

[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.)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]