SYNOPSIS
        string query_command()

BESCHREIBUNG
        Liefert den Text des aktuellen Kommandos oder 0, wenn keines
        ausgefuehrt wird.

        Der Text entspricht dem, was der Parser "sieht", also nachdem
        modify_command() ausgefuehrt und nachfolgende Leerzeichen
        abgeschnitten wurden.

        query_command() liefert 0, wenn es von einer Funktion gestartet
        wurde, die wiederum von einem call_out() oder dem heart_beat()
        aufgerufen wurde. Auch Kommandos, die beim Userlogin aufgerufen
        werden, liefern 0.

BEISPIELE
        void init() {
            ...
            add_action("sing","sing");
            ...
        }

        int sing(string str) {
            write("Dein Kommando war:"+query_command()+"\n");
            return 1;
        }

        Jedesmal, wenn jemand "sing blafasel" eingibt, liefert das Programm
        "Dein Kommando war: sing blafasel".

SIEHE AUCH
        add_action(E), query_verb(E)
