add command_output_handler_t
authorZachary T Welch <zw@superlucidity.net>
Wed, 11 Nov 2009 02:42:45 +0000 (18:42 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 13 Nov 2009 18:51:45 +0000 (10:51 -0800)
Add a typedef for command output handler function type, simplifying
the appearance of functions that use it and eliminating duplicate code.

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

index f960127..603da82 100644 (file)
@@ -558,7 +558,8 @@ int command_run_linef(command_context_t *context, const char *format, ...)
        return retval;
 }
 
-void command_set_output_handler(command_context_t* context, int (*output_handler)(struct command_context_s *context, const char* line), void *priv)
+void command_set_output_handler(command_context_t* context,
+               command_output_handler_t output_handler, void *priv)
 {
        context->output_handler = output_handler;
        context->output_handler_priv = priv;
index 732fa52..ded76fe 100644 (file)
@@ -51,6 +51,12 @@ enum command_mode
        COMMAND_ANY,
 };
 
+struct command_context_s;
+
+/// The type signature for command context's output handler.
+typedef int (*command_output_handler_t)(struct command_context_s *context,
+                               const char* line);
+
 typedef struct command_context_s
 {
        enum command_mode mode;
@@ -70,7 +76,7 @@ typedef struct command_context_s
         * Returning ERROR_COMMAND_SYNTAX_ERROR will have the effect of
         * printing out the syntax of the command.
         */
-       int (*output_handler)(struct command_context_s *context, const char* line);
+       command_output_handler_t output_handler;
        void *output_handler_priv;
 } command_context_t;
 
@@ -104,8 +110,7 @@ int unregister_command(command_context_t *context, char *name);
 int unregister_all_commands(command_context_t *context);
 
 void command_set_output_handler(command_context_t* context,
-               int (*output_handler)(struct command_context_s *context,
-               const char* line), void *priv);
+               command_output_handler_t output_handler, void *priv);
 
 command_context_t* copy_command_context(command_context_t* context);