diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-11-15 04:21:17 -0800 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-17 11:40:21 -0800 |
commit | be084414ba00a4ad641af04c3c6858312dd1b336 (patch) | |
tree | 6b32f73b845975eb0af7e8d4634aa5a483a1432d /src/helper/command.c | |
parent | 2861877b32a7a2f4022a1c3d9b66c9b4879878ac (diff) |
add struct command_invocation for COMMAND_HANDLER
Adds the command_invocation structure to encapsulate parameters for
all COMMAND_HANDLER routines. Rather than passing several arguments
to each successive subroutine, a single pointer may be passed around.
Changes the CMD_* macros to reference the new fields.
Updates run_command to create an instance and pass it to the handler.
Diffstat (limited to 'src/helper/command.c')
-rw-r--r-- | src/helper/command.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index fdb59f01..96d23ab4 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -447,9 +447,12 @@ static int run_command(struct command_context *context, return ERROR_FAIL; } - unsigned argc = num_words - start_word - 1; - const char **args = words + start_word + 1; - int retval = c->handler(context, args, argc); + struct command_invocation cmd = { + .ctx = context, + .argc = num_words - start_word - 1, + .argv = words + start_word + 1, + }; + int retval = c->handler(&cmd); if (retval == ERROR_COMMAND_SYNTAX_ERROR) { /* Print help for command */ |