SYNOPSIS
        #include <commands.h>

        mixed * match_command(string command, object origin)

DESCRIPTION
        Take the command <command>, parse it, and return an array of all
        matching actions added to <origin> (read: <origin> is the object
        'issuing' the command).

        Each entry in the result array is itself an array of:

          string [CMDM_VERB]:   The matched verb.
          string [CMDM_ARG]:    The argument string remaining, or 0 if none.
          object [CMDM_OBJECT]: The object defining the action.
          string [CMDM_FUN]:    The name of the function to call in
                                CMDM_OBJECT, which may be static.

        The efun is useful for both debugging, and for implementing your
        own H_COMMAND handling.

HISTORY
        Introduced in LDMud 3.3.259.

SEE ALSO
        hooks(C), execute_command(E), command(E), notify_fail(E),
        command_stack(E)
