From c53a80c29e696ab64d4279ca6f495c8e0e1b16b4 Mon Sep 17 00:00:00 2001 From: Michael Heerdegen Date: Thu, 14 Mar 2019 13:55:41 +0100 Subject: [PATCH] Fix seq-intersection with nil --- lisp/emacs-lisp/seq.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 4a811d7895..5718343a8f 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -409,12 +409,13 @@ seq-sort-by (cl-defgeneric seq-intersection (sequence1 sequence2 &optional testfn) "Return a list of the elements that appear in both SEQUENCE1 and SEQUENCE2. Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-reduce (lambda (acc elt) - (if (seq-contains sequence2 elt testfn) - (cons elt acc) - acc)) - (seq-reverse sequence1) - '())) + (let ((testfn (or testfn #'equal))) + (seq-reduce (lambda (acc elt) + (if (seq-some (apply-partially testfn elt) sequence2) + (cons elt acc) + acc)) + (seq-reverse sequence1) + '()))) (cl-defgeneric seq-difference (sequence1 sequence2 &optional testfn) "Return a list of the elements that appear in SEQUENCE1 but not in SEQUENCE2. -- 2.20.1