The macro defadvice resembles defun in that the code for
the advice, and all other information about it, are explicitly stated in
the source code. You can also create advice whose details are computed,
using the function ad-add-advice.
Calling
ad-add-adviceadds advice as a piece of advice to function in class class. The argument advice has this form:(name protected enabled definition)Here, protected and enabled are flags; if protected is non-
nil, the advice is protected against non-local exits (see Defining Advice), and if enabled isnilthe advice is initially disabled (see Enabling Advice). definition should have the form(advice . lambda)where lambda is a lambda expression; this lambda expression is called in order to perform the advice. See Lambda Expressions.
If the function argument to
ad-add-advicealready has one or more pieces of advice in the specified class, then position specifies where in the list to put the new piece of advice. The value of position can either befirst,last, or a number (counting from 0 at the beginning of the list). Numbers outside the range are mapped to the beginning or the end of the range, whichever is closer. The position value is ignored when redefining an existing piece of advice.If function already has a piece of advice with the same name, then the position argument is ignored and the old advice is replaced with the new one.