SYNOPSIS
        <object|lwobject>* caller_stack()
        <object|lwobject>* caller_stack(int add_interactive)

BESCHREIBUNG
        Liefert ein Array der previous_object(), die einen call_other() auf
        this_object() verursacht haben. Dabei entspricht previous_object(i)
        caller_stack()[i].

        Wenn die Funktion mit <add_interactive> (als wahr) aufgerufen wird,
        wird this_interactive() dem Array hinzugefuegt, oder 0, wenn kein
        this_interactive() existiert.

BEISPIELE
        Das interaktive Objekt A gibt ein Kommando ein, das im Objekt B eine
        Funktion aufruft, die auf das Objekt C verweist, welches wiederum
        eine Funktion im Objekt D aufruft.

        Wenn D nun caller_stack() aufruft, ergibt dies: ({C,B}).
        Fuer caller_stack(1) ergibt die Funktion: ({C,B,A}).

ANMERKUNGEN
        Aufrufe von "alien lfun closures" (vergleiche symbol_function())
        erzeugen zwei Eintraege im Stack, wenn das gebundene Objekt sich vom
        Objekt der Closure unterscheidet: der erste Eintrag steht fuer das
        gebundene Objekt, der zweite fuer das Closure-Objekt.

GESCHICHTE
        Eingefuehrt in LDMud 3.2.6, vorgeschlagen von Tubmud.

SIEHE AUCH
        caller_stack_depth(E), previous_object(E), this_interactive(E),
        call_other(E)
