add command_handler_t type
authorZachary T Welch <zw@superlucidity.net>
Wed, 11 Nov 2009 03:00:01 +0000 (19:00 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 13 Nov 2009 18:51:45 +0000 (10:51 -0800)
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.

src/helper/command.c
src/helper/command.h

index 603da82..e467be0 100644 (file)
@@ -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)
index 236dabb..aec066d 100644 (file)
@@ -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);