From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#55590: [PATCH] 29.0.50; Eshell subcommands clobber pipelines and produce incorrect output Date: Sun, 22 May 2022 20:43:28 -0700 Message-ID: <788e86e0-9358-2018-caae-71862d3b2442@gmail.com> References: <6cc569a4-3512-d546-3f39-76f3d61436ac@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------282F1387BD09E1F66DBA6806" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17282"; mail-complaints-to="usenet@ciao.gmane.io" To: 55590@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon May 23 05:44:14 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nsyzN-0004Ja-T1 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 23 May 2022 05:44:13 +0200 Original-Received: from localhost ([::1]:56818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nsyzM-0005Ez-C8 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 22 May 2022 23:44:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58274) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nsyzC-0005Eo-6p for bug-gnu-emacs@gnu.org; Sun, 22 May 2022 23:44:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52910) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nsyzB-0002SG-UO for bug-gnu-emacs@gnu.org; Sun, 22 May 2022 23:44:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nsyzB-0007z3-Qw for bug-gnu-emacs@gnu.org; Sun, 22 May 2022 23:44:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 May 2022 03:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 55590 X-GNU-PR-Package: emacs Original-Received: via spool by 55590-submit@debbugs.gnu.org id=B55590.165327741730652 (code B ref 55590); Mon, 23 May 2022 03:44:01 +0000 Original-Received: (at 55590) by debbugs.gnu.org; 23 May 2022 03:43:37 +0000 Original-Received: from localhost ([127.0.0.1]:46807 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nsyyn-0007yJ-Go for submit@debbugs.gnu.org; Sun, 22 May 2022 23:43:37 -0400 Original-Received: from mail-pj1-f47.google.com ([209.85.216.47]:53800) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nsyyl-0007y3-3i for 55590@debbugs.gnu.org; Sun, 22 May 2022 23:43:35 -0400 Original-Received: by mail-pj1-f47.google.com with SMTP id z11so3035004pjc.3 for <55590@debbugs.gnu.org>; Sun, 22 May 2022 20:43:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:references:message-id:date:mime-version:in-reply-to :content-language; bh=dOPg67erk1/PJFbeP5RjTeXD0WmtWlndShy22rLoIwg=; b=VO2kPG1x5qnV22UvFUyI9XFSdjC9tZVKERkS8Uhkbp/J7hSLrVzSPVTRZfPRzxcUOv fkYoy60N5wVHQS6NX8whSZNQtMy6qC2UrrRk1U97ZUX0i4WdLfKzo3MvTxqzV5rm3vLA F2ge8Iuo4ANO77C4gFNvu3wcTKtCZvcy5ZDvuI/nIqT5voDfOeFK7Q5lJZxtJTgycFwS WXdNE7oNpdZvIxxpuk30f1fjljsLtA38CEcgc0L0lI59C/3QEHavSb7MetX/S1see78G ChCwFjQJWKXZNINw1o8kZC5iAl+EP6cDLzuiespFCimQEB7CgWNhNlwSDygfmFILdrQL d3IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:from:to:references:message-id:date :mime-version:in-reply-to:content-language; bh=dOPg67erk1/PJFbeP5RjTeXD0WmtWlndShy22rLoIwg=; b=RwY5mADqBp2aQvcJR4KZ0hufUrw3GKoCSup1EQR8m83S29PH/UV4fCvdeu2bjoCDey 0ftQL7jUdQxyIEbUJUfY9Kpso58bPcCeoORkc4jp5k/Zdi6kAedRnnAE1JG/VNztMSCc uIJi42yZlIFgqEfv7zDQRpwkf6WYboaqMSZHIX2fo5vVUd14zDHEZ68CrgLq1ATsKBF1 t3iDrTxGeVbaH5iy662TG98Fs9dmIz+tGhlcYof/SOkcudRuP/OwV4tf1T47QJ+y54xi z8KB12la+rs1gA4LuEqG/0IsJJpEZBTjvOcKd2LSKUa76MS8PqA8a8hUAMwiEBfhXh6M Z64Q== X-Gm-Message-State: AOAM533gD5w2PJMvp9AFquVwoHB9gtENRzex+SkLaga6esUsKNcjQJoP z0W5ZZx486/QzuoTfrQgqBcKEDvX6cs= X-Google-Smtp-Source: ABdhPJye9RwglO2acyDyCV9mqNdR03fUE4EmKAQgMEYhlWmrFc/T7n/uTlIC70mXG6GEK728qJExHw== X-Received: by 2002:a17:90a:dd46:b0:1b8:8:7303 with SMTP id u6-20020a17090add4600b001b800087303mr24711219pjv.197.1653277408902; Sun, 22 May 2022 20:43:28 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id p29-20020a63951d000000b003c265b7d4f6sm3705038pgd.44.2022.05.22.20.43.28 for <55590@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 22 May 2022 20:43:28 -0700 (PDT) In-Reply-To: <6cc569a4-3512-d546-3f39-76f3d61436ac@gmail.com> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:232927 Archived-At: This is a multi-part message in MIME format. --------------282F1387BD09E1F66DBA6806 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit 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... --------------282F1387BD09E1F66DBA6806 Content-Type: text/plain; charset=UTF-8; name="0001-Keep-subcommands-in-pipelines-from-clobbering-the-he.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Keep-subcommands-in-pipelines-from-clobbering-the-he.pa"; filename*1="tch" RnJvbSA5NWQ2YmNjMzcwYjA5OGI1MjRmZmRlMjUxMDFmNjg0ZDMyN2E3NTg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMjIgTWF5IDIwMjIgMTc6Mjc6NDggLTA3MDAKU3ViamVjdDogW1BB VENIXSBLZWVwIHN1YmNvbW1hbmRzIGluIHBpcGVsaW5lcyBmcm9tIGNsb2JiZXJpbmcgdGhl IGhlYWQvdGFpbAogcHJvY2Vzc2VzCgoqIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgKGVzaGVs bC1leGVjdXRlLXBpcGVsaW5lKTogVXNlICdtYWtlLXN5bWJvbCcKZm9yIGhlYWRwcm9jIGFu ZCB0YWlscHJvYy4KKGVzaGVsbC1kby1waXBlbGluZXMsIGVzaGVsbC1kby1waXBlbGluZXMt c3luY2hyb25vdXNseSk6IEFkYXB0IHRvIHRoZQphYm92ZS4KCiogdGVzdC9saXNwL2VzaGVs bC9lc2hlbGwtdGVzdHMuZWwgKGVzaGVsbC10ZXN0L3BpcGUtc3ViY29tbWFuZCk6IE5ldwp0 ZXN0IChidWcjNTU1OTApLgotLS0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAg IHwgMTUgKysrKysrKysrKy0tLS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VzaGVsbC10ZXN0cy5l bCB8ICA4ICsrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCBiL2xp c3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5kZXggNDI2MTZlNzAzNy4uNzNjMjUwNjMyYyAxMDA2 NDQKLS0tIGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gt Y21kLmVsCkBAIC04MjcsOCArODI3LDggQEAgZXNoZWxsLWRvLXBpcGVsaW5lcwogCQkgICAg ICAoKGNkciBwaXBlbGluZSkgdCkKIAkJICAgICAgKHQgKHF1b3RlICdsYXN0KSkpKSkKICAg ICAgICAgICAobGV0ICgocHJvYyAsKGNhciBwaXBlbGluZSkpKQotICAgICAgICAgICAgKHNl dHEgaGVhZHByb2MgKG9yIHByb2MgaGVhZHByb2MpKQotICAgICAgICAgICAgKHNldHEgdGFp bHByb2MgKG9yIHRhaWxwcm9jIHByb2MpKQorICAgICAgICAgICAgKHNldCBoZWFkcHJvYyAo b3IgcHJvYyAoc3ltYm9sLXZhbHVlIGhlYWRwcm9jKSkpCisgICAgICAgICAgICAoc2V0IHRh aWxwcm9jIChvciAoc3ltYm9sLXZhbHVlIHRhaWxwcm9jKSBwcm9jKSkKICAgICAgICAgICAg IHByb2MpKSkpKSkKIAogKGRlZm1hY3JvIGVzaGVsbC1kby1waXBlbGluZXMtc3luY2hyb25v dXNseSAocGlwZWxpbmUpCkBAIC04NjEsNyArODYxLDcgQEAgZXNoZWxsLWRvLXBpcGVsaW5l cy1zeW5jaHJvbm91c2x5CiAgICAgICAgKGxldCAoKHJlc3VsdCAsKGNhciBwaXBlbGluZSkp KQogICAgICAgICAgOzsgdGFpbHByb2MgZ2V0cyB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IHN1 Y2Nlc3NmdWwgcHJvY2VzcyBpbgogICAgICAgICAgOzsgdGhlIHBpcGVsaW5lLgotICAgICAg ICAgKHNldHEgdGFpbHByb2MgKG9yIHJlc3VsdCB0YWlscHJvYykpCisgICAgICAgICAoc2V0 IHRhaWxwcm9jIChvciByZXN1bHQgKHN5bWJvbC12YWx1ZSB0YWlscHJvYykpKQogICAgICAg ICAgLChpZiAoY2RyIHBpcGVsaW5lKQogICAgICAgICAgICAgICBgKGVzaGVsbC1kby1waXBl bGluZXMtc3luY2hyb25vdXNseSAocXVvdGUgLChjZHIgcGlwZWxpbmUpKSkpCiAgICAgICAg ICByZXN1bHQpKSkpCkBAIC04NzAsNyArODcwLDExIEBAICdlc2hlbGwtcHJvY2Vzcy1pZGVu dGl0eQogCiAoZGVmbWFjcm8gZXNoZWxsLWV4ZWN1dGUtcGlwZWxpbmUgKHBpcGVsaW5lKQog ICAiRXhlY3V0ZSB0aGUgY29tbWFuZHMgaW4gUElQRUxJTkUsIGNvbm5lY3RpbmcgZWFjaCB0 byBvbmUgYW5vdGhlci4iCi0gIGAobGV0ICgoZXNoZWxsLWluLXBpcGVsaW5lLXAgdCkgaGVh ZHByb2MgdGFpbHByb2MpCisgIGAobGV0ICgoZXNoZWxsLWluLXBpcGVsaW5lLXAgdCkKKyAg ICAgICAgIChoZWFkcHJvYyAobWFrZS1zeW1ib2wgImhlYWRwcm9jIikpCisgICAgICAgICAo dGFpbHByb2MgKG1ha2Utc3ltYm9sICJ0YWlscHJvYyIpKSkKKyAgICAgKHNldCBoZWFkcHJv YyBuaWwpCisgICAgIChzZXQgdGFpbHByb2MgbmlsKQogICAgICAocHJvZ24KICAgICAgICAs KGlmIChmYm91bmRwICdtYWtlLXByb2Nlc3MpCiAJICAgIGAoZXNoZWxsLWRvLXBpcGVsaW5l cyAscGlwZWxpbmUpCkBAIC04ODAsNyArODg0LDggQEAgZXNoZWxsLWV4ZWN1dGUtcGlwZWxp bmUKIAkJCQkoY2FyIChhcmVmIGVzaGVsbC1jdXJyZW50LWhhbmRsZXMKIAkJCQkJICAgLGVz aGVsbC1lcnJvci1oYW5kbGUpKSBuaWwpKSkKIAkgICAgIChlc2hlbGwtZG8tcGlwZWxpbmVz LXN5bmNocm9ub3VzbHkgLHBpcGVsaW5lKSkpCi0gICAgICAgKGVzaGVsbC1wcm9jZXNzLWlk ZW50aXR5IChjb25zIGhlYWRwcm9jIHRhaWxwcm9jKSkpKSkKKyAgICAgICAoZXNoZWxsLXBy b2Nlc3MtaWRlbnRpdHkgKGNvbnMgKHN5bWJvbC12YWx1ZSBoZWFkcHJvYykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1ZSB0YWlscHJvYykp KSkpKQogCiAoZGVmbWFjcm8gZXNoZWxsLWFzLXN1YmNvbW1hbmQgKGNvbW1hbmQpCiAgICJF eGVjdXRlIENPTU1BTkQgdXNpbmcgYSB0ZW1wIGJ1ZmZlci4KZGlmZiAtLWdpdCBhL3Rlc3Qv bGlzcC9lc2hlbGwvZXNoZWxsLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lc2hlbGwt dGVzdHMuZWwKaW5kZXggN2NkZWIwMTdlNC4uZGNiNzAzYzczZiAxMDA2NDQKLS0tIGEvdGVz dC9saXNwL2VzaGVsbC9lc2hlbGwtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9l c2hlbGwtdGVzdHMuZWwKQEAgLTExNCw2ICsxMTQsMTQgQEAgZXNoZWxsLXRlc3QvcGlwZS1o ZWFkcHJvYy1zdGRpbgogICAgKGVzaGVsbC13YWl0LWZvci1zdWJwcm9jZXNzKQogICAgKGVz aGVsbC1tYXRjaC1yZXN1bHQgIk9MTEVIXG4iKSkpCiAKKyhlcnQtZGVmdGVzdCBlc2hlbGwt dGVzdC9waXBlLXN1YmNvbW1hbmQgKCkKKyAgIkNoZWNrIHRoYXQgcGlwaW5nIHdpdGggYXN5 bmNocm9ub3VzIHN1YmNvbW1hbmRzIHdvcmtzIgorICAoc2tpcC11bmxlc3MgKGFuZCAoZXhl Y3V0YWJsZS1maW5kICJlY2hvIikKKyAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGFibGUt ZmluZCAiY2F0IikpKQorICAod2l0aC10ZW1wLWVzaGVsbAorICAgKGVzaGVsbC1jb21tYW5k LXJlc3VsdC1wICJlY2hvICR7KmVjaG8gaGl9IHwgKmNhdCIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaGkiKSkpCisKIChlcnQtZGVmdGVzdCBlc2hlbGwtdGVzdC9yZWRpcmVj dC1idWZmZXIgKCkKICAgIkNoZWNrIHRoYXQgcGlwaW5nIHRvIGEgYnVmZmVyIHdvcmtzIgog ICAod2l0aC10ZW1wLWJ1ZmZlcgotLSAKMi4yNS4xCgo= --------------282F1387BD09E1F66DBA6806--