bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#55590: [PATCH] 29.0.50; Eshell subcommands clobber pipelines and pro


From: Jim Porter
Subject: bug#55590: [PATCH] 29.0.50; Eshell subcommands clobber pipelines and produce incorrect output
Date: Sun, 22 May 2022 20:43:28 -0700

On 5/22/2022 8:34 PM, Jim Porter wrote:
Starting from `emacs -Q -f eshell', enter the following command:

   echo ${*echo hi} | rev

The output is:

   ~ $ ih

That is, the output of the command ended up *after* the prompt, when it should be before.

The attached patch fixes this issue. It might not be the *best* way to do it, but it's the least-invasive I could come up with. The `make-symbol' dance is a bit awkward, but Eshell already uses it for `eshell-command-to-value' / `eshell-do-command-to-value', so hopefully it's ok. I'm open to other solutions though. It's possible the bug is really in `eshell-do-eval', since I'd expect the original code to work, but `eshell-do-eval' is pretty tricky, and I don't want to poke at it too hard for fear that other things will break.

Long-term, the best way to fix this might be to rip out `eshell-do-eval' entirely, which iteratively evaluates parts of Eshell commands (so as not to hang Emacs) and use the generator.el machinery instead. I looked into that briefly, and it seems like it would be quite a bit of work. And I don't fully understand generator.el's implementation yet anyway...

Attachment: 0001-Keep-subcommands-in-pipelines-from-clobbering-the-he.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]