Function: hargs:make-iform-vector
hargs:make-iform-vector is a macro defined in hargs.el.
Signature
(hargs:make-iform-vector &rest IFORM-ALIST)
Documentation
Return a vector of interactive command code characters.
IFORM-ALIST is a list of elements of the form
(INTERACTIVE-CMD-CHR (ARGUMENT-TYPE . GET-ARGUMENT-FORM))
GET-ARGUMENT-FORM is executed in a context where it has access to
two variables prompt and default.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hargs.el
(defmacro hargs:make-iform-vector (&rest iform-alist)
"Return a vector of interactive command code characters.
IFORM-ALIST is a list of elements of the form
(INTERACTIVE-CMD-CHR (ARGUMENT-TYPE . GET-ARGUMENT-FORM))
GET-ARGUMENT-FORM is executed in a context where it has access to
two variables `prompt' and `default'."
;; Vector needs to have 1 more elts than the highest char code for
;; interactive commands.
(let ((size (1+ (car (sort (mapcar #'car iform-alist) #'>))))
(vecsym (make-symbol "vec")))
`(let ((,vecsym (make-vector ',size nil)))
,@(mapcar (lambda (elt)
`(aset ,vecsym ',(car elt)
(lambda (prompt default)
(ignore prompt default) ;; Don't warn if not used.
(let ((prev-reading-p hargs:reading-type))
(unwind-protect
(progn
;; Use setq here to ensure change is
;; visible in lexical subcontexts that are
;; part of 'elt' body.
(setq hargs:reading-type ',(cadr elt))
,(cddr elt))
(setq hargs:reading-type prev-reading-p))))))
iform-alist)
,vecsym)))