Function: advice-eval-interactive-spec

advice-eval-interactive-spec is a byte-compiled function defined in nadvice.el.gz.

Signature

(advice-eval-interactive-spec SPEC)

Documentation

Evaluate the interactive spec SPEC.

View in manual

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/nadvice.el.gz
;; FIXME: How about renaming this to just `eval-interactive-spec'?
;; It's not specific to the advice system.
(defun advice-eval-interactive-spec (spec)
  "Evaluate the interactive spec SPEC."
  (cond
   ((stringp spec)
    ;; There's no direct access to the C code (in call-interactively) that
    ;; processes those specs, but that shouldn't stop us, should it?
    ;; FIXME: Despite appearances, this is not faithful: SPEC and
    ;; (advice-eval-interactive-spec SPEC) will behave subtly differently w.r.t
    ;; command-history (and maybe a few other details).
    (call-interactively
     ;; Sadly (lambda (&rest args) (interactive spec) args) doesn't work :-(
     (cconv--interactive-helper (lambda (&rest args) args) spec)))
   ;; ((functionp spec) (funcall spec))
   (t (eval spec))))