summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2025-09-13 21:23:23 +0200
committerJonas Bernoulli <jonas@bernoul.li>2025-09-13 21:23:23 +0200
commit834869e0bfc5043b9f40598f724b9d40f9da87b8 (patch)
treeb740be486c5abd001cd6178ff7cb46e5ea712c14
parent44d3a0357c28705758b135b23f19052e20d8c824 (diff)
Use named-let instead of cl-labels
-rw-r--r--lisp/transient.el59
1 files changed, 28 insertions, 31 deletions
diff --git a/lisp/transient.el b/lisp/transient.el
index 1da2e1b..d813c75 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1511,27 +1511,26 @@ symbol property.")
layout
(error "Unsupported layout version %s for %s" version prefix)))
;; Upgrade from version 1.
- (cl-labels
- ((upgrade (spec)
- (cond
- ((vectorp spec)
- (pcase-let ((`[,level ,class ,args ,children] spec))
- (when level
- (setq args (plist-put args :level level)))
- (vector class args (mapcar #'upgrade children))))
- ((and (listp spec)
- (length= spec 3)
- (or (null (car spec))
- (natnump (car spec)))
- (symbolp (cadr spec)))
- (pcase-let ((`(,level ,class ,args) spec))
- (when level
- (setq args (plist-put args :level level)))
- (cons class args)))
- ((listp spec)
- (mapcar #'upgrade spec))
- (t spec))))
- (transient--set-layout prefix (upgrade layout))))
+ (transient--set-layout
+ prefix
+ (named-let upgrade ((spec layout))
+ (cond ((vectorp spec)
+ (pcase-let ((`[,level ,class ,args ,children] spec))
+ (when level
+ (setq args (plist-put args :level level)))
+ (vector class args (mapcar #'upgrade children))))
+ ((and (listp spec)
+ (length= spec 3)
+ (or (null (car spec))
+ (natnump (car spec)))
+ (symbolp (cadr spec)))
+ (pcase-let ((`(,level ,class ,args) spec))
+ (when level
+ (setq args (plist-put args :level level)))
+ (cons class args)))
+ ((listp spec)
+ (mapcar #'upgrade spec))
+ (t spec)))))
(error "Not a transient prefix command or group definition: %s" prefix)))
(defun transient--get-children (prefix)
@@ -2503,16 +2502,14 @@ value. Otherwise return CHILDREN as is.")
(transient--get-children 'transient-common-commands))))))
(defun transient--flatten-suffixes (layout)
- (cl-labels ((s (def)
- (cond
- ((stringp def) nil)
- ((cl-typep def 'transient-information) nil)
- ((listp def) (mapcan #'s def))
- ((cl-typep def 'transient-group)
- (mapcan #'s (oref def suffixes)))
- ((cl-typep def 'transient-suffix)
- (list def)))))
- (mapcan #'s layout)))
+ (named-let flatten ((def layout))
+ (cond ((stringp def) nil)
+ ((cl-typep def 'transient-information) nil)
+ ((listp def) (mapcan #'flatten def))
+ ((cl-typep def 'transient-group)
+ (mapcan #'flatten (oref def suffixes)))
+ ((cl-typep def 'transient-suffix)
+ (list def)))))
(defun transient--init-child (levels spec parent)
(cl-etypecase spec