emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/seq 302c673617 13/20: Backport seq-mapn fix from Emacs


From: Stefan Monnier
Subject: [elpa] externals/seq 302c673617 13/20: Backport seq-mapn fix from Emacs master
Date: Thu, 1 Feb 2024 13:56:45 -0500 (EST)

branch: externals/seq
commit 302c673617af68553fc8a7b7b897d982096f0c02
Author: Nicolas Petton <nicolas@petton.fr>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    Backport seq-mapn fix from Emacs master
    
    * packages/seq/seq-24.el (seq-mapn):
    * packages/seq/seq-25.el (seq-mapn): Fix for circular lists.
    * packages/seq/tests/seq-tests.el: Add a regression test.
---
 seq-24.el          | 5 ++++-
 seq-25.el          | 5 ++++-
 tests/seq-tests.el | 5 +++++
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/seq-24.el b/seq-24.el
index 3f9cd8887f..36a3f2b93d 100644
--- a/seq-24.el
+++ b/seq-24.el
@@ -286,7 +286,10 @@ Return a list of the results.
 
 \(fn FUNCTION SEQS...)"
   (let ((result nil)
-        (seqs (seq-map (lambda (s) (seq-into s 'list))
+        (seqs (seq-map (lambda (s)
+                         (if (listp s)
+                             s
+                           (seq-into s 'list)))
                        (cons sequence seqs))))
     (while (not (memq nil seqs))
       (push (apply function (seq-map #'car seqs)) result)
diff --git a/seq-25.el b/seq-25.el
index c2268dddff..ff79dc0a29 100644
--- a/seq-25.el
+++ b/seq-25.el
@@ -171,7 +171,10 @@ Return a list of the results.
 
 \(fn FUNCTION SEQUENCES...)"
   (let ((result nil)
-        (sequences (seq-map (lambda (s) (seq-into s 'list))
+        (sequences (seq-map (lambda (s)
+                              (if (listp s)
+                                  s
+                                (seq-into s 'list)))
                             (cons sequence sequences))))
     (while (not (memq nil sequences))
       (push (apply function (seq-map #'car sequences)) result)
diff --git a/tests/seq-tests.el b/tests/seq-tests.el
index 5d729b19be..b0d29318bb 100644
--- a/tests/seq-tests.el
+++ b/tests/seq-tests.el
@@ -365,5 +365,10 @@ Evaluate BODY for each created sequence.
   (should-error (seq-random-elt []))
   (should-error (seq-random-elt "")))
 
+(ert-deftest test-seq-mapn-circular-lists ()
+  (let ((l1 '#1=(1 . #1#)))
+    (should (equal (seq-mapn #'+ '(3 4 5 7) l1)
+                   '(4 5 6 8)))))
+
 (provide 'seq-tests)
 ;;; seq-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]