diff options
author | Jim Porter <jporterbugs@gmail.com> | 2022-03-13 15:36:37 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-03-13 20:00:35 +0100 |
commit | 8e7a3f21e00649bacc01be627edd45ff01b51a33 (patch) | |
tree | 5234054fa05dbffe151de5aafb3ac2dad27b479a | |
parent | 1ec40630171c90203d7deafe2086d5bd728d790b (diff) | |
download | emacs-8e7a3f21e00649bacc01be627edd45ff01b51a33.tar.gz emacs-8e7a3f21e00649bacc01be627edd45ff01b51a33.tar.bz2 emacs-8e7a3f21e00649bacc01be627edd45ff01b51a33.zip |
Fix evaluation of negated argument predicates in Eshell
* lisp/eshell/em-pred.el (eshell-add-pred-func): Let-bind 'pred' so
the lambdas see the original value (bug#54369).
Committed on the wrong branch.
Do not merge to master.
-rw-r--r-- | lisp/eshell/em-pred.el | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index b1dc7abc696..4f4e85c1a69 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -364,12 +364,12 @@ resultant list of strings." (defun eshell-add-pred-func (pred funcs negate follow) "Add the predicate function PRED to FUNCS." - (if negate - (setq pred (lambda (file) - (not (funcall pred file))))) - (if follow - (setq pred (lambda (file) - (funcall pred (file-truename file))))) + (when negate + (setq pred (let ((pred pred)) + (lambda (file) (not (funcall pred file)))))) + (when follow + (setq pred (let ((pred pred)) + (lambda (file) (funcall pred (file-truename file)))))) (cons pred funcs)) (defun eshell-pred-user-or-group (mod-char mod-type attr-index get-id-func) |