Subject: bug#30529: 26.0.91; minibuffer errors change standard-output

From: Eli Zaretskii <[email-masked]>
Date: Thu, 12 Aug 2021 18:58:31 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Date: Thu, 12 Aug 2021 16:34:20 +0200
> Cc: [email-masked], Francis Wright <[email-masked]>,
>  [email-masked]
> 
> Found the culprit!  cmd_error sets standard_output to t!
> 
> The following patch fixes the reported issue (and doesn't lead to any
> regressions in the test suite), but this code has been like this
> forever, so I'm a bit leery about applying it.
> 
> And perhaps the 
> 
>   old_level = Vprint_level;
>   old_length = Vprint_length;
> 
> stuff should also be changed to specbinding?  Or do we want to avoid
> specbind here totally for some reason?  The commit for those lines just
> says:
> 
>     (cmd_error): Bind Vprint_level and Vprint_length.
> 
> I mean, we had specbind before 1995, I think?
> 
> So...  any comments/insights here?

I see no problems with the patch.  As we add calls into Lisp in more
and more places in the internals, we hit code that never imagined it
could be interrupted, so it didn't bother with unwinding (which
doesn't come for free).