summaryrefslogtreecommitdiff
path: root/cond-let.el
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2026-01-01 17:57:16 +0100
committerJonas Bernoulli <jonas@bernoul.li>2026-01-01 17:57:16 +0100
commit87d587fa632b6564b03b8fcdbf8498130dc85c91 (patch)
tree65f85a42403924f834694aff12a24178ddd42b39 /cond-let.el
parent24473ed30f0fb874655a70bbbdca092a508b59e7 (diff)
Improve indentation of cond
Emacs 31.1 adds variable `lisp-indent-local-overrides'.
Diffstat (limited to 'cond-let.el')
-rw-r--r--cond-let.el64
1 files changed, 32 insertions, 32 deletions
diff --git a/cond-let.el b/cond-let.el
index 6ded949..8c6411b 100644
--- a/cond-let.el
+++ b/cond-let.el
@@ -92,38 +92,38 @@
(let (body)
(dolist (clause (nreverse clauses))
(cond
- ((vectorp clause)
- (setq body
- `((,(if (and sequential (length> clause 1)) 'let* 'let)
- ,(mapcar (lambda (vec) (append vec nil)) clause)
- ,@body))))
- ((let (varlist)
- (while (vectorp (car clause))
- (push (append (pop clause) nil) varlist))
- (push (cond
- (varlist
- `(,(pcase (list (and body t)
- (and sequential (length> varlist 1)))
- ('(t t ) 'cond-let--when-let*)
- (`(t ,_) 'cond-let--when-let)
- ('(nil t ) 'cond-let--and-let*)
- (`(nil ,_) 'cond-let--and-let))
- ,(nreverse varlist)
- ,(if body
- `(throw ',tag ,(macroexp-progn clause))
- (macroexp-progn clause))))
- ((length= clause 1)
- (if body
- (let ((a (gensym "anon")))
- `(let ((,a ,(car clause)))
- (when ,a (throw ',tag ,a))))
- (car clause)))
- ((and (eq (car clause) t) (not body))
- (macroexp-progn (cdr clause)))
- (t
- `(when ,(pop clause)
- (throw ',tag ,(macroexp-progn clause)))))
- body)))))
+ ((vectorp clause)
+ (setq body
+ `((,(if (and sequential (length> clause 1)) 'let* 'let)
+ ,(mapcar (lambda (vec) (append vec nil)) clause)
+ ,@body))))
+ ((let (varlist)
+ (while (vectorp (car clause))
+ (push (append (pop clause) nil) varlist))
+ (push (cond
+ (varlist
+ `(,(pcase (list (and body t)
+ (and sequential (length> varlist 1)))
+ ('(t t ) 'cond-let--when-let*)
+ (`(t ,_) 'cond-let--when-let)
+ ('(nil t ) 'cond-let--and-let*)
+ (`(nil ,_) 'cond-let--and-let))
+ ,(nreverse varlist)
+ ,(if body
+ `(throw ',tag ,(macroexp-progn clause))
+ (macroexp-progn clause))))
+ ((length= clause 1)
+ (if body
+ (let ((a (gensym "anon")))
+ `(let ((,a ,(car clause)))
+ (when ,a (throw ',tag ,a))))
+ (car clause)))
+ ((and (eq (car clause) t) (not body))
+ (macroexp-progn (cdr clause)))
+ (t
+ `(when ,(pop clause)
+ (throw ',tag ,(macroexp-progn clause)))))
+ body)))))
body))
(defmacro cond-let* (&rest clauses)