GNU bug report logs - #21605
24.3; Eshell not using stderr

Previous Next

Package: emacs;

Reported by: Nikolas De Giorgis <bznein <at> gmail.com>

Date: Fri, 2 Oct 2015 14:45:03 UTC

Severity: normal

Found in version 24.3

Done: Jim Porter <jporterbugs <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 21605 <at> debbugs.gnu.org (full text, mbox):

From: Jim Porter <jporterbugs <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 21605 <at> debbugs.gnu.org, Nikolas De Giorgis <bznein <at> gmail.com>
Subject: Re: bug#21605: [PATCH] 24.3; Eshell not using stderr
Date: Mon, 29 Aug 2022 20:29:22 -0700
[Message part 1 (text/plain, inline)]
On 5/13/2022 5:38 AM, Lars Ingebrigtsen wrote:
> Jim Porter <jporterbugs <at> gmail.com> writes:
>> I agree that this would definitely be nice to have though.
> 
> Yup.

And here's a patch series. It's a bit long, so I'll summarize the changes.

The first patch just adds docs/tests for the existing code, plus a bit 
of code cleanup. It also fixes a very small edge case I stumbled upon, 
where "echo foo >a >b >a" only writes to "a". That was just a logic bug 
in 'eshell-set-output-handle'.

The second patch enhances 'eshell-interactive-output-p' so that it can 
check just stdout (or stderr) for interactivity, or all. This is 
technically a behavior change in some functions that call this, but I 
looked through all of them, and I think the new behavior makes more 
sense. This is really just laying the groundwork for the final patch in 
the series though.

The third patch adds all the parsing and command handling for various 
new kinds of redirect operators, like '&>', '2>&1', and '|&'.

The fourth patch moves some internal Eshell process bookkeeping onto the 
process objects. That way, we can reuse this code when making a pipe 
process. I also added some more tests for the existing code (this time 
just for external process handling).

The final patch fixes the actual issue described in this bug. When 
creating an external process, it checks whether stdout and stderr go to 
different places. If so, it makes a pipe process to monitor stderr and 
routes everything as appropriate.
[0001-Simplify-Eshell-handle-functions-and-add-tests-docum.patch (text/plain, attachment)]
[0002-Allow-checking-specific-Eshell-handles-for-interacti.patch (text/plain, attachment)]
[0003-Add-support-for-more-kinds-of-redirect-operators-in-.patch (text/plain, attachment)]
[0004-Put-Eshell-s-bookkeeping-data-for-external-processes.patch (text/plain, attachment)]
[0005-Let-external-Eshell-processes-send-stdout-and-stderr.patch (text/plain, attachment)]

This bug report was last modified 2 years and 321 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.