Function: ad-insert-argument-access-forms
ad-insert-argument-access-forms is a byte-compiled function defined in
advice.el.gz.
Signature
(ad-insert-argument-access-forms DEFINITION ARGLIST)
Documentation
Expands arg-access text macros in DEFINITION according to ARGLIST.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/advice.el.gz
(defun ad-insert-argument-access-forms (definition arglist)
"Expands arg-access text macros in DEFINITION according to ARGLIST."
(ad-substitute-tree
(lambda (form)
(or (eq form 'ad-arg-bindings)
(and (memq (car-safe form)
'(ad-get-arg ad-get-args ad-set-arg ad-set-args))
(integerp (car-safe (cdr form))))))
(lambda (form)
(if (eq form 'ad-arg-bindings)
(ad-retrieve-args-form arglist)
(let ((accessor (car form))
(index (car (cdr form)))
(val (car (cdr (ad-insert-argument-access-forms
(cdr form) arglist)))))
(cond ((eq accessor 'ad-get-arg)
(ad-get-argument arglist index))
((eq accessor 'ad-set-arg)
(ad-set-argument arglist index val))
((eq accessor 'ad-get-args)
(ad-get-arguments arglist index))
((eq accessor 'ad-set-args)
(ad-set-arguments arglist index val))))))
definition))