SYNOPSIS
object * caller_stack()
object * caller_stack(int add_interactive)
DESCRIPTION
Returns an array of the previous_object()s who caused the
call_other() to this_object().
previous_object(i) equals caller_stack()[i].
If you pass the optional argument <add_interactive> (as true value)
this_interactive() is appended to the array, or 0 if there is no
current interactive.
Note: calls to 'alien lfun closures' (see symbol_function(E))
generate two entries on the stack if the bound object differs
from the closure object: the first is for the bound object,
the second for the closure object.
EXAMPLES
interactive object A enters a command which causes
a call to a function in object B, that one calls a
function in object C and that, in turn, in object D
If D now calls caller_stack() the result would be: ({C,B}).
If it calls caller_stack(1) the result is: ({C,B,A}).
HISTORY
Introduced in LDMud 3.2.6, suggested by Tubmud.
SEE ALSO
caller_stack_depth(E), previous_object(E), this_interactive(E),
call_other(E)
|