Subject: bug#39977: 28.0.50; Unhelpful stack trace

From: Eli Zaretskii <[email-masked]>
Date: Wed, 18 Mar 2020 16:53:13 +0200

> Cc: [email-masked], [email-masked]
> From: martin rudalics <[email-masked]>
> Date: Wed, 18 Mar 2020 10:12:32 +0100
> 
>  > Feel free
>  > to fix this (whatever it is) as you see fit.
> 
> The longer I'm looking into this, the more I think that we should be
> much more restrictive wrt what an :eval form in mode line or title name
> processing should be allowed to do.  Tab bars could provide even more
> confusion.  I think we should disallow any such :eval to kill buffers
> and delete windows or frames at the very least.

So we are talking about :eval in mode-line-format (and similar
variables)?

> Maybe it should be also disallowed to select a window or frame or
> whatever the display engine tries to restore after processing these
> forms.  Such selections would be usually undone anyway by the display
> engine.  Probably, we should disallow such :eval forms to modify
> "anything" at all but I have no idea how to do that.

I'm not sure we can detect these actions reliably, as Lisp code can be
very complex.  I think we can only handle the consequences of those
actions.  Which is why I proposed to deal with that in SELECTED_FRAME
(we could, of course, find some other place where the disastrous
results of such code can be detected).