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

From: Andreas Schwab <[email-masked]>
Date: Thu, 12 Aug 2021 17:04:44 +0200

On Aug 12 2021, Lars Ingebrigtsen wrote:

> "Basil L. Contovounesios" <[email-masked]> writes:
>
>>> This problem is still present in Emacs 28.  I tried following the code
>>> logic for a couple of minutes to see just what it is that's (re)setting
>>> `standard-output' here, but was unable to locate the location.
>>>
>>> Anybody know?
>>
>> Just from a quick grep, could it be recursive_edit_1?
>
> 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 think the intention is to get out of any situation that may result in
repeated errors.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."