GNU bug report logs - #54369
28.0.92; [PATCH] Fix negated argument predicates in Eshell

Previous Next

Package: emacs;

Reported by: Jim Porter <jporterbugs <at> gmail.com>

Date: Sun, 13 Mar 2022 06:35:01 UTC

Severity: normal

Tags: patch

Found in version 28.0.92

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

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 54369 in the body.
You can then email your comments to 54369 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#54369; Package emacs. (Sun, 13 Mar 2022 06:35:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jim Porter <jporterbugs <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 13 Mar 2022 06:35:01 GMT) Full text and rfc822 format available.

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

From: Jim Porter <jporterbugs <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.92; [PATCH] Fix negated argument predicates in Eshell
Date: Sat, 12 Mar 2022 22:34:16 -0800
[Message part 1 (text/plain, inline)]
From "emacs -Q --eval '(eshell)'":

  ~ $ echo *(^.)
  Lisp nesting exceeds ‘max-lisp-eval-depth’

On Emacs 27, this correctly prints a list of everything in the current 
directory *except* for regular files. ("*" matches all files, "()" 
specifies an argument predicate, "." says "match regular files", and "^" 
says "invert that logic".)

I think this is due to the lexical binding change in 28. Attached is a 
patch to fix this. No unit tests right now, but I'm working on a patch 
for 29 with full unit tests for Eshell globs and argument 
predicates/modifiers. (I pulled this bit out of my branch for that, 
since it's a regression that should probably get fixed in 28.)

Regarding the patch itself, I'm not sure if there's a cleaner way to do 
this; it feels like there should be, but this is the only way I could 
think of off-hand to fix it.
[0001-Fix-evaluation-of-negated-argument-predicates-in-Esh.patch (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#54369; Package emacs. (Sun, 13 Mar 2022 14:39:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Jim Porter <jporterbugs <at> gmail.com>
Cc: 54369 <at> debbugs.gnu.org
Subject: Re: bug#54369: 28.0.92; [PATCH] Fix negated argument predicates in
 Eshell
Date: Sun, 13 Mar 2022 15:38:09 +0100
Jim Porter <jporterbugs <at> gmail.com> writes:

> I think this is due to the lexical binding change in 28. Attached is a
> patch to fix this. No unit tests right now, but I'm working on a patch
> for 29 with full unit tests for Eshell globs and argument
> predicates/modifiers. (I pulled this bit out of my branch for that,
> since it's a regression that should probably get fixed in 28.)

Yup.  Pushed to emacs-28 now.

> Regarding the patch itself, I'm not sure if there's a cleaner way to
> do this; it feels like there should be, but this is the only way I
> could think of off-hand to fix it.

It looks like the most obvious minimal way to fix this to me.

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




bug marked as fixed in version 29.1, send any further explanations to 54369 <at> debbugs.gnu.org and Jim Porter <jporterbugs <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 13 Mar 2022 14:39:02 GMT) Full text and rfc822 format available.

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

This bug report was last modified 3 years and 70 days ago.

Previous Next


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