Function: ad-make-advised-definition
ad-make-advised-definition is a byte-compiled function defined in
advice.el.gz.
Signature
(ad-make-advised-definition FUNCTION)
Documentation
Generate an advised definition of FUNCTION from its advice info.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/advice.el.gz
;; @@@ Putting it all together:
;; ============================
(defun ad-make-advised-definition (function)
"Generate an advised definition of FUNCTION from its advice info."
(if (and (ad-is-advised function)
(ad-has-redefining-advice function))
(let* ((origdef (ad-real-orig-definition function))
;; Construct the individual pieces that we need for assembly:
(orig-arglist (let ((args (ad-arglist origdef)))
;; The arglist may still be unknown.
(if (listp args) args '(&rest args))))
(advised-arglist (or (ad-advised-arglist function)
orig-arglist))
(interactive-form (ad-advised-interactive-form function))
(orig-form
(ad-map-arglists advised-arglist orig-arglist)))
;; Finally, build the sucker:
(ad-assemble-advised-definition
advised-arglist
nil
interactive-form
orig-form
(ad-get-enabled-advices function 'before)
(ad-get-enabled-advices function 'around)
(ad-get-enabled-advices function 'after)))))