From 7b656e4a55d012f5e35801d2156ae4bba9bd1f30 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 6 Apr 2014 14:15:09 -0400 Subject: [PATCH] * lisp/dired-aux.el (dired-file-set-difference): Use lexical-scoping. --- lisp/ChangeLog | 8 ++++++-- lisp/dired-aux.el | 27 ++++++++++++++++----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2c8387f7708..2016bcd3e02 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,11 @@ +2014-04-06 Stefan Monnier + + * dired-aux.el (dired-file-set-difference): Use lexical-scoping. + 2014-04-05 Leo Liu - * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add - define-compilation-mode. + * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + Add define-compilation-mode. 2014-04-04 João Távora diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 432d2307725..bb93cce6500 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -215,19 +215,24 @@ condition. Two file items are considered to match if they are equal (dolist (file1 list1) (unless (let ((list list2)) (while (and list - (not (let* ((file2 (car list)) - (fa1 (car (cddr file1))) - (fa2 (car (cddr file2))) - (size1 (nth 7 fa1)) - (size2 (nth 7 fa2)) - (mtime1 (float-time (nth 5 fa1))) - (mtime2 (float-time (nth 5 fa2)))) - (and - (equal (car file1) (car file2)) - (not (eval predicate)))))) + (let* ((file2 (car list)) + (fa1 (car (cddr file1))) + (fa2 (car (cddr file2)))) + (or + (not (equal (car file1) (car file2))) + (eval predicate + `((fa1 . ,fa1) + (fa2 . ,fa2) + (size1 . ,(nth 7 fa1)) + (size2 . ,(nth 7 fa2)) + (mtime1 + . ,(float-time (nth 5 fa1))) + (mtime2 + . ,(float-time (nth 5 fa2))) + ))))) (setq list (cdr list))) list) - (setq res (cons file1 res)))) + (push file1 res))) (nreverse res)))) (defun dired-files-attributes (dir) -- 2.11.4.GIT