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)))))