The
execute-actions
macro executes, in sequence, the actions on the specified list. If the action-list specified by
name-or-list
does not exist, then this is handled according to the value of *handle-missing-action-list*. Note that
name-or-list
is evaluated.
If a user-defined execution function was specified when the action list was defined, then it should accept the following arguments:
(
action-list
other-args
&rest
keyword-value-pairs
)
Note that other-args is passed as a single list.
If a user-defined execution function was not specified when the action list was defined, then the following default mapping occurs. Each action's data is invoked via apply on other-args:
(
apply
data
other-args
)
This behavior is modified by the keyword-value-pairs, thus:
:ignore-errors-p
is non-nil, any otherwise-unhandled errors signalled inside the execution of that function will be trapped, and a warning issued. Execution continues with the next action-item. If
:ignore-errors-p
is
nil
(or not specified), then the error is not trapped.
:post-process
is non-nil, the first value returned by each action is handled, according to
:post-process
, thus:collect values into list
return
t
only if all values are
t
. Return
nil
immediately if any value is
nil
return first non-nil value