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.

Signed-off-by: Zachary T Welch <z...@superlucidity.net>
---
 src/helper/command.c |    4 +++-
 src/helper/command.h |    9 +++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/helper/command.c b/src/helper/command.c
index fb9faaa..28f8ffc 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -165,7 +165,9 @@ static int script_command(Jim_Interp *interp, int argc, 
Jim_Obj *const *argv)
 /* nice short description of source file */
 #define __THIS__FILE__ "command.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), enum command_mode mode, char *help)
+command_t* register_command(command_context_t *context,
+               command_t *parent, char *name, command_handler_t handler,
+               enum command_mode mode, char *help)
 {
        command_t *c, *p;
 
diff --git a/src/helper/command.h b/src/helper/command.h
index 7d03261..2cbc964 100644
--- a/src/helper/command.h
+++ b/src/helper/command.h
@@ -113,20 +113,21 @@ 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;
 
 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);
-- 
1.6.4.4

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to