[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12515: 24.2.50; Error during redisplay: (eval (mode-line-eol-desc))
From: |
Drew Adams |
Subject: |
bug#12515: 24.2.50; Error during redisplay: (eval (mode-line-eol-desc)) signaled (quit) |
Date: |
Tue, 25 Sep 2012 13:51:38 -0700 |
> Unless you see a lot of these messages in *Messages*, I wouldn't worry
> about this.
OK, good. I noticed it only once.
> What happens is that as part of redisplay of the mode line, the
> display engine calls the function mode-line-eol-desc (defined on
> bindings.el), which produces the end-of-line (EOL) indicator near the
> left edge of the mode line. Because signaling an error normally
> re-enters redisplay (to display the error message), the display code
> suppresses the normal way of processing signals from Lisp it calls,
> and instead intercepts all signals and adds this kind of message to
> *Messages*. Since mode-line-eol-desc does not disable quitting (maybe
> it should), hitting C-g when it runs could cause this signal, I think.
Thanks for taking the time to explain this.
I guess part of what you are saying (implying) is that _quitting_ (C-g), because
it involves signalling, also "normally re-enters redisplay (to display the" quit
message).
Sounds like `mode-line-eol-desc' should disable quitting only if it is
guaranteed to end quickly. IOW, code that disables quitting should not prevent
a user from actually quitting in a timely manner.
When you say "disable quitting", do you mean that the user would need to hit
`C-g' again, or only that the `C-g' would not be processed until after redisplay
finishes (i.e., respects a previously set `quit-flag')?
BTW, I looked in `(elisp) Quitting' for some explanation of this, but it does
not seem to mention "display" or "redisplay" at all. (It does mention C code,
however.)