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.
This commit is contained in:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user