bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#54369: 28.0.92; [PATCH] Fix negated argument predicates in Eshell


From: Jim Porter
Subject: bug#54369: 28.0.92; [PATCH] Fix negated argument predicates in Eshell
Date: Sat, 12 Mar 2022 22:34:16 -0800

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.

Attachment: 0001-Fix-evaluation-of-negated-argument-predicates-in-Esh.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]