Function: ad-set-argument

ad-set-argument is a byte-compiled function defined in advice.el.gz.

Signature

(ad-set-argument ARGLIST INDEX VALUE-FORM)

Documentation

Return form to set ARGLIST's actual arg at INDEX to VALUE-FORM.

INDEX counts from zero.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/advice.el.gz
(defun ad-set-argument (arglist index value-form)
  "Return form to set ARGLIST's actual arg at INDEX to VALUE-FORM.
INDEX counts from zero."
  (let ((argument-access (ad-access-argument arglist index)))
    (cond ((consp argument-access)
	   ;; should this check whether there actually is something to set?
	   `(setcar ,(ad-list-access
                      (car argument-access) (car (cdr argument-access)))
             ,value-form))
	  (argument-access
	   `(setq ,argument-access ,value-form))
	  (t (error "ad-set-argument: No argument at position %d of `%s'"
		    index arglist)))))