summaryrefslogtreecommitdiff
path: root/src/helper/command.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-15 04:21:17 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-17 11:40:21 -0800
commitbe084414ba00a4ad641af04c3c6858312dd1b336 (patch)
tree6b32f73b845975eb0af7e8d4634aa5a483a1432d /src/helper/command.c
parent2861877b32a7a2f4022a1c3d9b66c9b4879878ac (diff)
downloadopenocd+libswd-be084414ba00a4ad641af04c3c6858312dd1b336.tar.gz
openocd+libswd-be084414ba00a4ad641af04c3c6858312dd1b336.tar.bz2
openocd+libswd-be084414ba00a4ad641af04c3c6858312dd1b336.tar.xz
openocd+libswd-be084414ba00a4ad641af04c3c6858312dd1b336.zip
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.c9
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 */