]> code.delx.au - gnu-emacs/commitdiff
Fix seq-contains
authorNicolas Petton <nicolas@petton.fr>
Sat, 18 Jun 2016 08:07:26 +0000 (10:07 +0200)
committerNicolas Petton <nicolas@petton.fr>
Sat, 18 Jun 2016 08:10:00 +0000 (10:10 +0200)
Make sure seq-contains return the element of the sequence instead of t.

* lisp/emacs-lisp/seq.el (seq-contains): Fix the function.
* test/lisp/emacs-lisp/seq-tests.el: Add a regression test.

lisp/emacs-lisp/seq.el
test/lisp/emacs-lisp/seq-tests.el

index 20610a7027d13caab4b2e47f35da61d784754be9..e5004f8cdab1b7db144d3f113f6bf4057bbe0e10 100644 (file)
@@ -4,7 +4,7 @@
 
 ;; Author: Nicolas Petton <nicolas@petton.fr>
 ;; Keywords: sequences
-;; Version: 2.17
+;; Version: 2.18
 ;; Package: seq
 
 ;; Maintainer: emacs-devel@gnu.org
@@ -349,7 +349,8 @@ found or not."
   "Return the first element in SEQUENCE that is equal to ELT.
 Equality is defined by TESTFN if non-nil or by `equal' if nil."
   (seq-some (lambda (e)
-              (funcall (or testfn #'equal) elt e))
+              (when (funcall (or testfn #'equal) elt e)
+                e))
             sequence))
 
 (cl-defgeneric seq-position (sequence elt &optional testfn)
index b227de36e971b53e357ac7b89cc4282fa0ce788e..c2065c6718ff75b6c7b9890940aff2c09a4eaa6e 100644 (file)
@@ -181,6 +181,10 @@ Evaluate BODY for each created sequence.
     (should-not (seq-contains seq 3))
     (should-not (seq-contains seq nil))))
 
+(ert-deftest test-seq-contains-should-return-the-elt ()
+  (with-test-sequences (seq '(3 4 5 6))
+    (should (= 5 (seq-contains seq 5)))))
+
 (ert-deftest test-seq-every-p ()
   (with-test-sequences (seq '(43 54 22 1))
     (should (seq-every-p (lambda (elt) t) seq))