GNU bug report logs -
#54603
29.0.50; [PATCH] Eshell's external pipe module interferes with other argument parsing hooks
Previous Next
Reported by: Jim Porter <jporterbugs <at> gmail.com>
Date: Mon, 28 Mar 2022 02:22:02 UTC
Severity: normal
Tags: patch
Found in version 29.0.50
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #41 received at 54603 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
On Thu 31 Mar 2022 at 04:31PM -07, Jim Porter wrote:
> On 3/31/2022 3:48 PM, Sean Whitton wrote:
>>
>> 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.
Thank you for this suggestion, but I think that findbeg1 is more
readable, and actually perhaps more efficient, if we maintain the
(while (or ...)) structure.
So I would like to install the attached patch to resolve this bug.
--
Sean Whitton
[0001-em-extpipe-Catch-eshell-incomplete-thrown-while-pars.patch (text/x-patch, attachment)]
This bug report was last modified 3 years and 45 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.