Subject: bug#12704: 24.2.50; QuitError during redisplay: (eval (\` ((-3 (\, (propertize "%p" ...

From: Eli Zaretskii <[email-masked]>
Date: Mon, 22 Oct 2012 23:18:08 +0200

> From: "Drew Adams" <[email-masked]>
> Cc: "'Eli Zaretskii'" <[email-masked]>, <[email-masked]>
> Date: Mon, 22 Oct 2012 13:39:26 -0700
> 
> > The message should not be printed, because what happened is something
> > which shouldn't happen.
> 
> Hm.  FWIW, Eli's msg seems to contradict that:
> 
>   "They are always printed to *Messages*, as redisplay has no
>    other ways of recording these errors that don't re-enter redisplay.

There's no contradiction here.  Stefan says that the message is not
expected, i.e. it's an emergency.  I explained that _if_ these
messages are issued, they are put into *Messages*.

> >From what I gather from your reply and his, a quit signal from C-g (but not from
> code?) during mode-line redisplay normally does not result in such a message in
> *Messages*, because the redisplay code binds `inhibit-quit' to non-nil while it
> does its thing.

That's the plan, yes.  But bugs are so creative...

> So if the msg resulted from my hitting C-g then the fact that the message is
> present indicates that something must have changed `inhibit-quit' to nil.

That's the suspicion, yes.

> I imagine that it could be bound to nil more generally, in some operation during
> which the mode line happened to get updated by display.  But that is presumably
> already taken care of - I imagine that the binding to non-nil happens when
> mode-line updating begins.

Yes, this should be taken care of.  I think.