branch: externals/compat commit 343bcbb1f1454fe68d3aaa1730c702c1bf8c6372 Author: Philip Kaludercic <phil...@posteo.net> Commit: Philip Kaludercic <phil...@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.