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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 21605 in the body.
You can then email your comments to 21605 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Fri, 02 Oct 2015 14:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nikolas De Giorgis <bznein <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 02 Oct 2015 14:45:04 GMT) Full text and rfc822 format available.

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

From: Nikolas De Giorgis <bznein <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; Eshell not using stderr
Date: Fri, 02 Oct 2015 12:23:58 +0000
[Message part 1 (text/plain, inline)]
This bug report will be sent to the Bug-GNU-Emacs mailing list

and the GNU bug tracker at debbugs.gnu.org. Please check that

the From: line contains a valid email address. After a delay of up

to one day, you should receive an acknowledgment at that address.


Please write in English if possible, as the Emacs maintainers

usually do not have translators for other languages.


Please describe exactly what actions triggered the bug, and

the precise symptoms of the bug. If you can, give a recipe

starting from `emacs -Q':


Starting from emacs -Q

go into eshell (M-x eshell)

executing the following c++ program:


#include <iostream>


int main()

{

   std::cerr << "ERROR\n";

   std::cout << "OUTPUT\n";


}


provides the following output:


~ $ ./a.out 2> /dev/null

ERROR

OUTPUT


From which it seems that eshell ignores stderr and sends everything to
stdout



If Emacs crashed, and you have the Emacs process in the gdb debugger,

please include the output from the following gdb commands:

`bt full' and `xbacktrace'.

For information about debugging Emacs, please read the file

/usr/share/emacs/24.3/etc/DEBUG.



In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)

of 2014-03-07 on lamiak, modified by Debian

Windowing system distributor `The X.Org Foundation', version 11.0.11600000

System Description: Ubuntu 14.04.3 LTS


Configured using:

`configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'

'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'

'--localstatedir=/var/lib' '--infodir=/usr/share/info'

'--mandir=/usr/share/man' '--with-pop=yes'

'--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'

'--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'

'--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'

'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector

--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'

'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'

'CPPFLAGS=-D_FORTIFY_SOURCE=2''


Important settings:

value of $LC_MONETARY: it_IT.UTF-8

value of $LC_NUMERIC: it_IT.UTF-8

value of $LC_TIME: it_IT.UTF-8

value of $LANG: en_US.UTF-8

locale-coding-system: utf-8-unix

default enable-multibyte-characters: t


Major mode: EShell


Minor modes in effect:

shell-dirtrack-mode: t

keyfreq-autosave-mode: t

keyfreq-mode: t

global-undo-tree-mode: t

undo-tree-mode: t

electric-pair-mode: t

ido-everywhere: t

show-paren-mode: t

yas-global-mode: t

yas-minor-mode: t

ecb-minor-mode: t

TeX-PDF-mode: t

TeX-source-correlate-mode: t

global-linum-mode: t

display-time-mode: t

recentf-mode: t

winner-mode: t

tooltip-mode: t

mouse-wheel-mode: t

file-name-shadow-mode: t

global-font-lock-mode: t

font-lock-mode: t

blink-cursor-mode: t

auto-composition-mode: t

auto-encryption-mode: t

auto-compression-mode: t

temp-buffer-resize-mode: t

line-number-mode: t

transient-mark-mode: t


Recent input:

n d SPC <backspace> <backspace> SPC d a s h <return>

<help-echo> <help-echo> <down-mouse-1> <mouse-movement>

<drag-mouse-1> <help-echo> <help-echo> <down-mouse-1>

<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>

<down-mouse-1> <mouse-1> C-x b <return> <help-echo>

<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-movement>

<mouse-movement> <drag-mouse-1> <help-echo> <down-mouse-3>

<drag-mouse-3> <down-mouse-1> <mouse-movement> <mouse-movement>

<drag-mouse-1> <down-mouse-1> <mouse-movement> <mouse-movement>

<mouse-movement> <mouse-movement> <help-echo> <mouse-movement>

<drag-mouse-1> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <down-mouse-1> <mouse-1> s

h <return> . / a <tab> <backspace> <backspace> <backspace>

<C-up> <C-up> <C-up> <C-up> <return> C-c C-d b a s

h <return> <C-up> <C-up> <C-up> <C-up> <C-up> <return>

C-c C-d <help-echo> <down-mouse-1> <mouse-movement>

<drag-mouse-1> <f11> <help-echo> <help-echo> <down-mouse-4>

<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>

<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>

<down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5>

<down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5>

<triple-down-mouse-5> <triple-mouse-5> <down-mouse-1>

<mouse-1> <down-mouse-1> <mouse-1> <down-mouse-5> <mouse-5>

C-c C-c . / a <tab> 2 > SPC / d e b <backspace> v /

n u l l <return> <help-echo> <help-echo> <help-echo>

<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>

<down-mouse-1> <mouse-movement> <mouse-1> <down-mouse-1>

<mouse-movement> <mouse-movement> <drag-mouse-1> <help-echo>

<help-echo> <down-mouse-1> <mouse-1> M-x s h e <tab>

<return> l <backspace> . / a <tab> 2 > SPC / d e <tab>

q b / <backspace> <backspace> v ( n <backspace> <backspace>

<delete> / n u <tab> <return> <help-echo> <help-echo>

<help-echo> <down-mouse-1> <mouse-1> M-x t e r m <tab>

<return> <return> . / d e <backspace> <backspace> <backspace>

. <backspace> / a <tab> 2 > SPC / d e v / n u <tab>

<return> <help-echo> <help-echo> <down-mouse-1> <mouse-1>

<help-echo> <help-echo> <down-mouse-1> <mouse-movement>

<mouse-1> <down-mouse-1> <mouse-1> C-x b <return> <down-mouse-1>

<mouse-1> <help-echo> <help-echo> <down-mouse-1> <mouse-movement>

<mouse-1> <help-echo> <help-echo> M-x e s h <tab> <return>

<help-echo> <down-mouse-1> <mouse-1> C-x b <right>

<right> <right> <right> <return> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <down-mouse-1>

<mouse-movement> <mouse-1> C-c C-c l s <return> <down-mouse-1>

<mouse-1> <help-echo> <help-echo> <help-echo> <help-echo>

<down-mouse-1> <mouse-1> M-x r e p o <tab> <tab> r

t <tab> <return>


Recent messages:

History item: 125

History item: 128

History item: 127

History item: 126

History item: 125

History item: 124

Mark set

Making completion list...

You can run the command `eshell' with C-c . e

Making completion list...


Load-path shadows:

~/.emacs.d/helm/helm-info hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-info

~/.emacs.d/helm/helm-grep hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-grep

~/.emacs.d/helm/helm-net hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-net

~/.emacs.d/helm/helm-sys hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-sys

~/.emacs.d/helm/helm-man hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-man

~/.emacs.d/helm/helm-locate hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-locate

~/.emacs.d/helm/helm-adaptive hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-adaptive

~/.emacs.d/helm/helm-eval hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-eval

~/.emacs.d/helm/helm-elscreen hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-elscreen

~/.emacs.d/helm/helm-buffers hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-buffers

~/.emacs.d/helm/helm-source hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-source

~/.emacs.d/helm/helm-autoloads hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-autoloads

~/.emacs.d/helm/helm-files hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-files

~/.emacs.d/helm/helm-misc hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-misc

~/.emacs.d/helm/helm-regexp hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-regexp

~/.emacs.d/helm/helm hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm

~/.emacs.d/helm/helm-org hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-org

~/.emacs.d/helm/helm-mode hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-mode

~/.emacs.d/helm/helm-eshell hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-eshell

~/.emacs.d/helm/helm-imenu hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-imenu

~/.emacs.d/helm/helm-apt hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-apt

~/.emacs.d/helm/helm-elisp hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-elisp

~/.emacs.d/helm/helm-ring hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-ring

~/.emacs.d/helm/helm-config hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-config

~/.emacs.d/helm/helm-font hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-font

~/.emacs.d/helm/helm-command hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-command

~/.emacs.d/helm/helm-utils hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-utils

~/.emacs.d/helm/helm-semantic hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-semantic

~/.emacs.d/helm/helm-plugin hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-plugin

~/.emacs.d/helm/helm-match-plugin hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-match-plugin

~/.emacs.d/helm/helm-elisp-package hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-elisp-package

~/.emacs.d/helm/helm-help hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-help

~/.emacs.d/helm/helm-tags hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-tags

~/.emacs.d/helm/helm-dabbrev hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-dabbrev

~/.emacs.d/helm/helm-color hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-color

~/.emacs.d/helm/helm-pkg hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-pkg

~/.emacs.d/helm/helm-bookmark hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-bookmark

~/.emacs.d/helm/helm-aliases hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-aliases

~/.emacs.d/helm/helm-external hides
/home/nikolas/.emacs.d/elpa/helm-20150518.202/helm-external

/usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides
/usr/share/emacs/site-lisp/cmake-mode

/usr/share/emacs/24.3/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup

/usr/share/emacs24/site-lisp/latex-cjk-thai/thai-word hides
/usr/share/emacs/24.3/lisp/language/thai-word

/home/nikolas/.emacs.d/elpa/irony-20150614.1225/.dir-locals hides
/usr/share/emacs/24.3/lisp/gnus/.dir-locals

/usr/share/emacs/24.3/lisp/emacs-lisp/cl-lib hides
/home/nikolas/.emacs.d/elpa/cl-lib-0.5/cl-lib


Features:

(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode

mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader

sendmail rfc2047 rfc2045 ietf-drums mail-utils tabify man tramp-cache

tramp tramp-compat tramp-loaddefs shell format-spec pcmpl-unix find-file

lisp-mnt em-unix pcomplete em-term term disp-table ehelp em-script

em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic

em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext esh-proc

esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util misearch

multi-isearch ffap url-parse auth-source gnus-util mm-util mail-prsvr

password-cache url-vars windmove imenu cus-edit cus-start cus-load

irony-cdb-json pp json irony-cdb-clang-complete irony-cdb company-files

company-oddmuse company-keywords company-etags etags company-gtags

company-dabbrev-code company-dabbrev company-capf company-cmake

company-xcode company-clang company-semantic company-eclim

company-template company-css company-nxml company-bbdb company-elisp

company-irony irony-completion irony-snippet irony find-func company

cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align

cc-engine cc-vars cc-defs ecb-layout-defs cyberpunk-theme keyfreq

undo-tree diff electric ido paren popup-complete yasnippet help-mode ecb

warnings ecb-symboldef ecb-analyse ecb-compatibility ecb-winman-support

ecb-autogen autoload ecb-tod ecb-cycle ecb-eshell ecb-help ecb-jde

ecb-method-browser hideshow ecb-semantic-wrapper ecb-semantic

ecb-file-browser ecb-speedbar ecb-layout compile comint ansi-color

ecb-create-layout ecb-compilation ecb-common-browser speedbar sb-image

dframe ecb-navigate ecb-mode-line ecb-face tree-buffer ecb-upgrade

ecb-cedet-wrapper semantic/db-mode semantic/db-find semantic/db-ref

semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn

semantic/db eieio-base semantic/format ezimage semantic/tag-ls

semantic/find semantic/ctxt semantic/util-modes semantic/util semantic

semantic/tag semantic/lex semantic/fw eieio byte-opt bytecomp

byte-compile cconv mode-local cedet ecb-util thingatpt cl-macs gv

silentcomp latex easy-mmode tex-style tex dbus xml crm server face-remap

memory-usage darkroom helm-config async-bytecomp async helm-aliases

uniquify advice help-fns cl cl-lib advice-preload linum

ac-helm-autoloads tex-site auto-complete-autoloads chess-autoloads info

company-c-headers-autoloads company-irony-autoloads company-autoloads

ctags-autoloads ctags-update-autoloads cuda-mode-autoloads

darkroom-autoloads helm-autoloads async-autoloads irony-autoloads

finder-inf keyfreq-autoloads memory-usage-autoloads minimap-autoloads

popup-autoloads cl-lib-autoloads spacemacs-theme-autoloads

undo-tree-autoloads w3-autoloads yasnippet-autoloads package

tango-dark-theme time recentf tree-widget wid-edit easymenu winner ring

edmacro kmacro time-date tooltip ediff-hook vc-hooks lisp-float-type

mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe

tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow

timer select scroll-bar mouse jit-lock font-lock syntax facemenu

font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan

thai tai-viet lao korean japanese hebrew greek romanian slovak czech

european ethiopic indian cyrillic chinese case-table epa-hook

jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces

cus-face macroexp files text-properties overlay sha1 md5 base64 format

env code-pages mule custom widget hashtable-print-readable backquote

make-network-process dbusbind dynamic-setting system-font-setting

font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Thu, 12 May 2022 12:27:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Nikolas De Giorgis <bznein <at> gmail.com>
Cc: 21605 <at> debbugs.gnu.org, Jim Porter <jporterbugs <at> gmail.com>
Subject: Re: bug#21605: 24.3; Eshell not using stderr
Date: Thu, 12 May 2022 14:26:21 +0200
Nikolas De Giorgis <bznein <at> gmail.com> writes:

> Starting from emacs -Q
> go into eshell (M-x eshell)
> executing the following c++ program: 
> #include <iostream>
> int main()
> {
>    std::cerr << "ERROR\n";
>    std::cout << "OUTPUT\n";
> }
> provides the following output:
> ~ $ ./a.out 2> /dev/null
> ERROR
> OUTPUT
> From which it seems that eshell ignores stderr and sends everything to stdout

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

This seems to be the case in Emacs 29, too, but I'm not sure whether
this is by design or not.  I've added Jim to the CCs; perhaps he has
some input here.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Fri, 13 May 2022 02:15:01 GMT) Full text and rfc822 format available.

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

From: Jim Porter <jporterbugs <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>, Nikolas De Giorgis <bznein <at> gmail.com>
Cc: 21605 <at> debbugs.gnu.org
Subject: Re: bug#21605: 24.3; Eshell not using stderr
Date: Thu, 12 May 2022 19:14:46 -0700
On 5/12/2022 5:26 AM, Lars Ingebrigtsen wrote:
> This seems to be the case in Emacs 29, too, but I'm not sure whether
> this is by design or not.  I've added Jim to the CCs; perhaps he has
> some input here.

I think this is just a missing feature, partly due to the fact that the 
redirection operators don't let you redirect a specific fd. That's in 
the "Bugs and Ideas" section of the Eshell manual though:

  Support ‘2>&1’ and ‘>&’ and ‘2>’ and ‘|&’

    The syntax table for parsing these should be customizable, such that
    the user could change it to use rc syntax: ‘>[2=1]’.

Doing that is probably the hardest part. The other bit that would need 
to be fixed is (I think) to modify `eshell-gather-process-output' to use 
`make-process' instead of `start-file-process', and then give it a 
:stderr argument so that Emacs doesn't write both stdout and stderr to a 
single temp buffer.

I agree that this would definitely be nice to have though.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Fri, 13 May 2022 12:39:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Jim Porter <jporterbugs <at> gmail.com>
Cc: 21605 <at> debbugs.gnu.org, Nikolas De Giorgis <bznein <at> gmail.com>
Subject: Re: bug#21605: 24.3; Eshell not using stderr
Date: Fri, 13 May 2022 14:38:23 +0200
Jim Porter <jporterbugs <at> gmail.com> writes:

> I think this is just a missing feature, partly due to the fact that
> the redirection operators don't let you redirect a specific fd. That's
> in the "Bugs and Ideas" section of the Eshell manual though:
>
>   Support ‘2>&1’ and ‘>&’ and ‘2>’ and ‘|&’
>
>     The syntax table for parsing these should be customizable, such that
>     the user could change it to use rc syntax: ‘>[2=1]’.
>
> Doing that is probably the hardest part. The other bit that would need
> to be fixed is (I think) to modify `eshell-gather-process-output' to
> use `make-process' instead of `start-file-process', and then give it a
> :stderr argument so that Emacs doesn't write both stdout and stderr to
> a single temp buffer.

I see; thanks.

> I agree that this would definitely be nice to have though.

Yup.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Tue, 30 Aug 2022 03:30:01 GMT) Full text and rfc822 format available.

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)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Tue, 30 Aug 2022 10:32:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Jim Porter <jporterbugs <at> gmail.com>
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: Tue, 30 Aug 2022 12:31:01 +0200
Jim Porter <jporterbugs <at> gmail.com> writes:

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

I had a quick look-through, and it makes sense to me, so go ahead and
push if you want.






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21605; Package emacs. (Wed, 31 Aug 2022 04:26:01 GMT) Full text and rfc822 format available.

Message #23 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: Tue, 30 Aug 2022 21:25:07 -0700
On 8/30/2022 3:31 AM, Lars Ingebrigtsen wrote:
> Jim Porter <jporterbugs <at> gmail.com> writes:
> 
>> And here's a patch series. It's a bit long, so I'll summarize the changes.
> 
> I had a quick look-through, and it makes sense to me, so go ahead and
> push if you want.

Thanks for taking a look. Since it's a fairly big set of changes, I'll 
give it a couple days in case anyone has any concerns, but assuming no 
one does, I'll just merge it then.




Reply sent to Jim Porter <jporterbugs <at> gmail.com>:
You have taken responsibility. (Sun, 04 Sep 2022 23:06:02 GMT) Full text and rfc822 format available.

Notification sent to Nikolas De Giorgis <bznein <at> gmail.com>:
bug acknowledged by developer. (Sun, 04 Sep 2022 23:06:02 GMT) Full text and rfc822 format available.

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

From: Jim Porter <jporterbugs <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 21605-done <at> debbugs.gnu.org, Nikolas De Giorgis <bznein <at> gmail.com>
Subject: Re: bug#21605: [PATCH] 24.3; Eshell not using stderr
Date: Sun, 4 Sep 2022 16:05:08 -0700
On 8/30/2022 9:25 PM, Jim Porter wrote:
> Thanks for taking a look. Since it's a fairly big set of changes, I'll 
> give it a couple days in case anyone has any concerns, but assuming no 
> one does, I'll just merge it then.

Merged as f07505d1ecf15ca9f6e6461e042092ceee96cc25. Closing this bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 03 Oct 2022 11:24:04 GMT) Full text and rfc822 format available.

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

Previous Next


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