From: Zachary T Welch Date: Wed, 11 Nov 2009 03:00:01 +0000 (-0800) Subject: add command_handler_t type X-Git-Tag: v0.4.0-rc1~811 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ddb6138ed428f666064d26bb08036de3afe44bc8;p=openocd add command_handler_t type This patch adds new typedefs for command handler callback functions. Users of this type signature were updated to use these new types. It uses the new __COMMAND_HANDLER macro to prevent duplication. --- 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);