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

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

[elpa] externals/compat 343bcbb 46/99: Fix if-let implementation


From: ELPA Syncer
Subject: [elpa] externals/compat 343bcbb 46/99: Fix if-let implementation
Date: Sun, 17 Oct 2021 05:57:55 -0400 (EDT)

branch: externals/compat
commit 343bcbb1f1454fe68d3aaa1730c702c1bf8c6372
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Fix if-let implementation
---
 compat-25.1.el | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/compat-25.1.el b/compat-25.1.el
index 63f1d35..de9e824 100644
--- a/compat-25.1.el
+++ b/compat-25.1.el
@@ -100,16 +100,16 @@ This is like `if-let' but doesn't handle a VARLIST of the 
form
   (declare (indent 2)
            (debug ((&rest [&or symbolp (symbolp form) (form)])
                    body)))
-  `(let* (,(let ((empty (make-symbol "s"))
-                 (last t) list)
-             (dolist (var varlist)
-               (push `(,(if (cdr var) (car var) empty)
-                       (and ,last ,(or (cdr var) (car var))))
-                     list)
-               (when (or (cdr var) (consp (car var)))
-                 (setq last (caar list))))
-             (nreverse list)))
-     ,then ,@else))
+  (let ((empty (make-symbol "s"))
+        (last t) list)
+    (dolist (var varlist)
+      (push `(,(if (cdr var) (car var) empty)
+              (and ,last ,(or (cadr var) (car var))))
+            list)
+      (when (or (cdr var) (consp (car var)))
+        (setq last (caar list))))
+    `(let* ,(nreverse list)
+       (if ,(caar list) ,then ,@else))))
 
 (compat-defmacro when-let* (varlist &rest body)
   "Bind variables according to VARLIST and conditionally evaluate BODY.



reply via email to

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