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#54603: 29.0.50; [PATCH] Eshell's external pipe module interferes with other argument parsing hooks Date: Thu, 31 Mar 2022 16:31:53 -0700 Message-ID: <8191b68d-975d-3f84-bb0b-501bdf2edf47@gmail.com> References: <70677cd2-f741-16d1-b38f-c39b507cc95e@gmail.com> <871qyij7vx.fsf@melete.silentflame.com> <87bkxliy76.fsf@melete.silentflame.com> <87y20pbuwu.fsf@athena.silentflame.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A4F7DCF6B7B0D686AB660DE4" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6996"; mail-complaints-to="usenet@ciao.gmane.io" To: Sean Whitton , 54603@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Apr 01 01:33:09 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 1na4Ht-0001g6-D8 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 01 Apr 2022 01:33:09 +0200 Original-Received: from localhost ([::1]:50706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1na4Hs-0002Pl-5c for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 31 Mar 2022 19:33:08 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:49418) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1na4Hm-0002Pc-M6 for bug-gnu-emacs@gnu.org; Thu, 31 Mar 2022 19:33:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46241) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1na4Hm-0006YT-Do for bug-gnu-emacs@gnu.org; Thu, 31 Mar 2022 19:33:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1na4Hm-0005O7-70 for bug-gnu-emacs@gnu.org; Thu, 31 Mar 2022 19:33:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 31 Mar 2022 23:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54603 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 54603-submit@debbugs.gnu.org id=B54603.164876952220641 (code B ref 54603); Thu, 31 Mar 2022 23:33:02 +0000 Original-Received: (at 54603) by debbugs.gnu.org; 31 Mar 2022 23:32:02 +0000 Original-Received: from localhost ([127.0.0.1]:40138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na4Gn-0005Mg-Tp for submit@debbugs.gnu.org; Thu, 31 Mar 2022 19:32:02 -0400 Original-Received: from mail-pg1-f181.google.com ([209.85.215.181]:43962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na4Gl-0005MM-T6 for 54603@debbugs.gnu.org; Thu, 31 Mar 2022 19:32:01 -0400 Original-Received: by mail-pg1-f181.google.com with SMTP id c2so973598pga.10 for <54603@debbugs.gnu.org>; Thu, 31 Mar 2022 16:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:references:from:message-id:date:mime-version:in-reply-to :content-language; bh=tlrjwq2NHXFtEoYxqGiie2DcPtz0woVtYSmp1+jHS38=; b=AfjK2vJp4wsKw3WNMRVkMtdrd3tuUdTwQvW2oSuoshcy1tQFrj78V9T8JshSkqYYv0 kfBgHV2BG0u8ipWhpWtEGmh0rU6/gqkZyNG1Fuetj6d+FRG/BstNl4ml6hkYyUsEW0Zw qrTyMYeFO2aOCkkJ3q2/UlOsxYe21oTMjKEFDORzLLxgR+ImlnmL4rduV6UJtLA5YFhH 8JLIq7yr4g1W2mrzMeboGfuirpzllDFTxg5qAVZq5DV32p/6bSqsBPuVJCYHsR4VvNEk s2CZovVFnSpZyBEolkvCT8/Rqf7L8IGCkGjT+jGsNdBRFA0AW9zvd2EMJnx4F8nTuhf2 qyEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=tlrjwq2NHXFtEoYxqGiie2DcPtz0woVtYSmp1+jHS38=; b=NqE7m6M5VOgKi/zJeoKrFtoN+XGFlnYvssqhgs52RDoyc2UY/DzoQqAH2nc+cG4EnV koy1KY0FbTjqy4HZ+Ka7xR0FNdeqcqoCJMee9xn/tvL8pV0oHaYZREbC9byGpqGRiSb8 zYBhj8ap6rcrP3I6dnr+wnRPs8V4iFMcH88o7HRUZ4StL2cmYdsPxmeBsoaY71uNTCwE 4vP/l0EvD4EL6wD34ZQm7DfKIR0IBJaJ2yKFLVQT36f3SgufXzm8R8cCVLwmfmXmf1DH TLBTW0K79OOaW9b50WhDDbQB0YHephfx1tYQrLQxCJjDCIBbLyJ2MxQ4V3A5HbozwzTk ESKQ== X-Gm-Message-State: AOAM532wltP/7gSckemN+6mzV87C5cqKf7sfOgJDXfLRy9v6R9UDKvP3 o0dwRMd4HShPCG15MeWrqF68Pd4s7ws= X-Google-Smtp-Source: ABdhPJz98pu7jFctb+UUjAX4eI+Z2PNe5lL+R6rnI7pqKtnFbrFUPAwesqy/yusMNWiRM5meNCOQIA== X-Received: by 2002:a63:2a97:0:b0:398:6e01:d565 with SMTP id q145-20020a632a97000000b003986e01d565mr12691080pgq.119.1648769513889; Thu, 31 Mar 2022 16:31:53 -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 o40-20020a17090a0a2b00b001c77ebd8fa9sm411506pjo.17.2022.03.31.16.31.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 31 Mar 2022 16:31:53 -0700 (PDT) In-Reply-To: <87y20pbuwu.fsf@athena.silentflame.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:229191 Archived-At: This is a multi-part message in MIME format. --------------A4F7DCF6B7B0D686AB660DE4 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 3/31/2022 3:48 PM, Sean Whitton wrote: > Thank you for testing. In the meantime, I've thought it all through > some more, and I think that your original idea of catching the > 'eshell-incomplete is the right thing, assuming all tests pass. > > I think the error should be caught inside the `or', though? The idea > would be that if eshell-incomplete is thrown within one of the > disjuncts, that disjunct should return nil. Hmm, that's an interesting thought. Maybe this code could be more particular about what parse function it calls. Since each of the function calls here: (while (or (eshell-parse-lisp-argument) (eshell-parse-backslash) (eshell-parse-double-quote) (eshell-parse-literal-quote))) correspond to a particular token here (earlier in the source): (re-search-forward "\\(?:(\\|#?'\\|\"\\|\\\\\\)" bound t))) perhaps it would be better to match the function call to the corresponding token. That is, if we see a "#?", we call `eshell-parse-lisp-argument', and so on. See the attached patch, which works in my tests (and passes all the existing Eshell unit tests). --------------A4F7DCF6B7B0D686AB660DE4 Content-Type: text/plain; charset=UTF-8; name="0001-Make-Eshell-s-extpipe-more-lenient-when-looking-for-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Make-Eshell-s-extpipe-more-lenient-when-looking-for-.pa"; filename*1="tch" RnJvbSBkM2ZmYzRiMTBjYzM3YThiYWJjMzA0OGVmMzUwN2Q0ZDc0YzVmYzJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMjcgTWFyIDIwMjIgMTk6MDQ6NDIgLTA3MDAKU3ViamVjdDogW1BB VENIXSBNYWtlIEVzaGVsbCdzIGV4dHBpcGUgbW9yZSBsZW5pZW50IHdoZW4gbG9va2luZyBm b3IgaXRzCiBvcGVyYXRvcnMKClRoaXMgY291bGQgY2F1c2Ugc29tZSBlcnJvcnMgd2hlbiBl eGVjdXRpbmcgRXNoZWxsIGNvbW1hbmRzIHdpdGggYW4Kb2RkIG51bWJlciBvZiBxdW90YXRp b24gbWFya3MsIHN1Y2ggYXMgIihlcSAnZm9vIG5pbCkiLgoKKiBsaXNwL2VzaGVsbC9lbS1l eHRwaXBlLmVsIChlc2hlbGwtcGFyc2UtZXh0ZXJuYWwtcGlwZWxpbmUpOiBDYXRjaAonZXNo ZWxsLWluY29tcGxldGUnIGVycm9ycyBhbmQgb25seSBjYWxsIHRoZSBwYXJzZSBmdW5jdGlv bgpjb3JyZXNwb25kaW5nIHRvIHRoZSB0b2tlbiBhdCBwb2ludC4KCiogdGVzdC9saXNwL2Vz aGVsbC9lc2hlbGwtdGVzdHMuZWwKKGVzaGVsbC10ZXN0L2xpc3AtY29tbWFuZC13aXRoLXF1 b3RlKTogTmV3IHRlc3QuCi0tLQogbGlzcC9lc2hlbGwvZW0tZXh0cGlwZS5lbCAgICAgICAg fCAxMSArKysrKysrLS0tLQogdGVzdC9saXNwL2VzaGVsbC9lc2hlbGwtdGVzdHMuZWwgfCAg NCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZW0tZXh0cGlwZS5lbCBiL2xpc3AvZXNo ZWxsL2VtLWV4dHBpcGUuZWwKaW5kZXggZWI1YjNiZmUxZC4uYzU4N2YzMThiZiAxMDA2NDQK LS0tIGEvbGlzcC9lc2hlbGwvZW0tZXh0cGlwZS5lbAorKysgYi9saXNwL2VzaGVsbC9lbS1l eHRwaXBlLmVsCkBAIC0xMDAsMTUgKzEwMCwxOCBAQCBlc2hlbGwtcGFyc2UtZXh0ZXJuYWwt cGlwZWxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCg/OiM/J1xcfFwiXFx8XFxcXFxc KSIgYm91bmQgdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0b2tlbiAoYW5k IGZvdW5kIChtYXRjaC1zdHJpbmcgMCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IChuZXh0IChvciAoYW5kIGZvdW5kIChtYXRjaC1iZWdpbm5pbmcgMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIChpZiAocmUtc2VhcmNoLWZvcndhcmQgcGF0IG5leHQgdCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh0aHJvdyAnZm91bmQgKG1hdGNoLWJlZ2lubmluZyAxKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG5leHQpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgKHdoaWxlIChvciAoZXNoZWxsLXBhcnNlLWxpc3AtYXJndW1lbnQpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXNoZWxsLXBhcnNlLWJhY2tz bGFzaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlc2hlbGwtcGFy c2UtZG91YmxlLXF1b3RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGVzaGVsbC1wYXJzZS1saXRlcmFsLXF1b3RlKSkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgKGNhdGNoICdlc2hlbGwtaW5jb21wbGV0ZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHBjYXNlIHRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiIyciIChl c2hlbGwtcGFyc2UtbGlzcC1hcmd1bWVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgiXFwiIChlc2hlbGwtcGFyc2UtYmFja3NsYXNoKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCJcIiIgKGVzaGVsbC1wYXJzZS1kb3VibGUtcXVvdGUpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoIiciICAoZXNoZWxsLXBhcnNlLWxpdGVyYWwtcXVv dGUpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgR3VhcmQgYWdhaW5zdCBhbiBp bmZpbml0ZSBsb29wIGlmIG5vbmUgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0 aGUgcGFyc2VycyBtb3ZlZCB1cyBmb3J3YXJkLgogICAgICAgICAgICAgICAgICAgICAgICAg ICh1bmxlc3MgKG9yICg+IChwb2ludCkgbmV4dCkgKGVvYnApKQpkaWZmIC0tZ2l0IGEvdGVz dC9saXNwL2VzaGVsbC9lc2hlbGwtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaGVs bC10ZXN0cy5lbAppbmRleCBlMzFkYjA3YzYxLi4xZTMwM2Y3MGU1IDEwMDY0NAotLS0gYS90 ZXN0L2xpc3AvZXNoZWxsL2VzaGVsbC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxs L2VzaGVsbC10ZXN0cy5lbApAQCAtNDQsNiArNDQsMTAgQEAgZXNoZWxsLXRlc3QvbGlzcC1j b21tYW5kCiAgICJUZXN0IGBlc2hlbGwtY29tbWFuZC1yZXN1bHQnIHdpdGggYW4gZWxpc3Ag Y29tbWFuZC4iCiAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5kLXJlc3Vs dCAiKCsgMSAyKSIpIDMpKSkKIAorKGVydC1kZWZ0ZXN0IGVzaGVsbC10ZXN0L2xpc3AtY29t bWFuZC13aXRoLXF1b3RlICgpCisgICJUZXN0IGBlc2hlbGwtY29tbWFuZC1yZXN1bHQnIHdp dGggYW4gZWxpc3AgY29tbWFuZCBjb250YWluaW5nIGEgcXVvdGUuIgorICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLXRlc3QtY29tbWFuZC1yZXN1bHQgIihlcSAnZm9vIG5pbCkiKSBuaWwp KSkKKwogKGVydC1kZWZ0ZXN0IGVzaGVsbC10ZXN0L2Zvci1sb29wICgpCiAgICJUZXN0IGBl c2hlbGwtY29tbWFuZC1yZXN1bHQnIHdpdGggYSBmb3IgbG9vcC4uIgogICAobGV0ICgocHJv Y2Vzcy1lbnZpcm9ubWVudCAoY29ucyAiZm9vIiBwcm9jZXNzLWVudmlyb25tZW50KSkpCi0t IAoyLjI1LjEKCg== --------------A4F7DCF6B7B0D686AB660DE4--