GNU bug report logs -
#54369
28.0.92; [PATCH] Fix negated argument predicates in Eshell
Previous Next
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.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[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)]
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.