diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/helper/command.c | 4 | ||||
-rw-r--r-- | src/helper/command.h | 9 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index 603da82f..e467be0b 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -225,9 +225,7 @@ static void command_add_child(struct command_s **head, struct command_s *c) } command_t* register_command(command_context_t *context, - command_t *parent, char *name, - int (*handler)(struct command_context_s *context, - char* name, char** args, int argc), + command_t *parent, char *name, command_handler_t handler, enum command_mode mode, char *help) { if (!context || !name) diff --git a/src/helper/command.h b/src/helper/command.h index 236dabbe..aec066d0 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -122,12 +122,15 @@ typedef struct command_context_s #define COMMAND_HELPER(name, extra...) __COMMAND_HANDLER(name, extra) +/// The type signature for commands' handler functions. +typedef __COMMAND_HANDLER((*command_handler_t)); + typedef struct command_s { char *name; struct command_s *parent; struct command_s *children; - int (*handler)(struct command_context_s *context, char* name, char** args, int argc); + command_handler_t handler; enum command_mode mode; struct command_s *next; } command_t; @@ -143,9 +146,7 @@ typedef struct command_s char *command_name(struct command_s *c, char delim); command_t* register_command(command_context_t *context, - command_t *parent, char *name, - int (*handler)(struct command_context_s *context, - char* name, char** args, int argc), + command_t *parent, char *name, command_handler_t handler, enum command_mode mode, char *help); int unregister_command(command_context_t *context, char *name); |