GESCHUETZT
SYNOPSIS
        #include <commands.h>

        mixed * command_stack()

BESCHREIBUNG
        Liefert ein Array, das den Kommandostack beschreibt. Das Array
        umfasst command_stack_depth() Eintraege; der erste davon beschreibt
        das Top-Level-Kommando, der letzte Eintrag das aktuelle Kommando.

        Jeder Eintrag ist wiederum ein Array mit folgenden Eintraegen:

            string [CMD_VERB]:      das Verb dieses Kommandos
            string [CMD_TEXT]:      der volle Text des Kommandos
            object [CMD_ORIGIN]:    der urspruengliche Kommandogeber
            object [CMD_PLAYER]:    der momentane Kommandogeber
            mixed  [CMD_FAIL]:      der Inhalt von notify_fail() (oder 0)
            mixed  [CMD_FAILOBJ]:   das Objekt, welches notify_fail() gesetzt
                                    hat

        CMD_ORIGIN und CMD_PLAYER sind fuer gewoehnlich das gleiche Objekt.
        Es gibt nur einen Unterschied, wenn der modify_command-Hook den
        Kommandogeber mit set_this_player() aendert.

ANMERKUNGEN
        Jeder der Eintraege im Array kann 0 sein.

GESCHICHTE
        Eingefuehrt in LDMud 3.2.7.
        LDMud 3.2.8 fuegte den CMD_FAILOBJ Eintrag hinzu.

SIEHE AUCH
        command(E), command_stack_depth(E), notify_fail(E)
