From be084414ba00a4ad641af04c3c6858312dd1b336 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Sun, 15 Nov 2009 04:21:17 -0800 Subject: 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. --- src/helper/command.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/helper/command.c') 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 */ -- cgit v1.2.3