Function: transient--expand-define-args
transient--expand-define-args is a function defined in transient.el.
Signature
(transient--expand-define-args ARGS ARGLIST FORM &optional NOBODY)
Source Code
;; Defined in ~/.emacs.d/elpa/transient-20260414.1009/transient.el
(eval-and-compile ;transient--expand-define-args
(defun transient--expand-define-args (args &optional arglist form nobody)
;; ARGLIST and FORM are only optional for backward compatibility.
;; This is necessary because "emoji.el" from Emacs 29 calls this
;; function directly, with just one argument.
(declare (advertised-calling-convention
(args arglist form &optional nobody) "0.7.1"))
(unless (listp arglist)
(error "Mandatory ARGLIST is missing"))
(let (class keys suffixes docstr declare (interactive-only t))
(when (stringp (car args))
(setq docstr (pop args)))
(while (keywordp (car args))
(let ((k (pop args))
(v (pop args)))
(if (eq k :class)
(setq class v)
(push k keys)
(push v keys))))
(while-let*
((arg (car args))
(arg (cond
;; Inline group definition.
((vectorp arg)
(pop args))
;; Quoted include, as one would expect.
((eq (car-safe arg) 'quote)
(cadr (pop args)))
;; Unquoted include, for compatibility.
((and arg (symbolp arg))
(pop args)))))
(push arg suffixes))
(when (eq (car-safe (car args)) 'declare)
(setq declare (car args))
(setq args (cdr args))
(when-let ((int (assq 'interactive-only declare)))
(setq interactive-only (cadr int))
(delq int declare))
(unless (cdr declare)
(setq declare nil)))
(cond
((not args))
(nobody
(error "%s: No function body allowed" form))
((not (eq (car-safe (nth (if declare 1 0) args)) 'interactive))
(error "%s: Interactive form missing" form)))
(list (if (eq (car-safe class) 'quote)
(cadr class)
class)
(nreverse keys)
(nreverse suffixes)
docstr
(if declare (cons declare args) args)
interactive-only))))