summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2022-03-13 15:36:37 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2022-03-13 20:00:35 +0100
commit8e7a3f21e00649bacc01be627edd45ff01b51a33 (patch)
tree5234054fa05dbffe151de5aafb3ac2dad27b479a
parent1ec40630171c90203d7deafe2086d5bd728d790b (diff)
downloademacs-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.el12
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)