diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-11-20 13:36:07 -0800 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-24 21:37:30 -0800 |
commit | 25a7ac2c756c78603c9c99d06f55717440409a23 (patch) | |
tree | c48127c6f32465dbd23fd5c8ec27b46850af6168 /src | |
parent | d107f71c5079dbe2a023276367b805397d1245c4 (diff) | |
download | openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.gz openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.bz2 openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.xz openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.zip |
command: use register_commands for handlers
Use register_commands() to register low-level command handlers,
adding a builtin_command_handlers declaration that is easy to understand.
Splits help and usage information into their appropriate fields.
Diffstat (limited to 'src')
-rw-r--r-- | src/helper/command.c | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index df4667b9..28952fda 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -900,6 +900,39 @@ COMMAND_HANDLER(handle_sleep_command) return ERROR_OK; } +static const struct command_registration command_builtin_handlers[] = { + { + .name = "add_help_text", + .handler = &handle_help_add_command, + .mode = COMMAND_ANY, + .help = "add new command help text", + .usage = "<command> [...] <help_text>]", + }, + { + .name = "sleep", + .handler = &handle_sleep_command, + .mode = COMMAND_ANY, + .help = "sleep for n milliseconds. " + "\"busy\" will busy wait", + .usage = "<n> [busy]", + }, + { + .name = "help", + .handler = &handle_help_command, + .mode = COMMAND_ANY, + .help = "show built-in command help", + .usage = "[<command_name> ...]", + }, + { + .name = "usage", + .handler = &handle_usage_command, + .mode = COMMAND_ANY, + .help = "show command usage", + .usage = "[<command_name> ...]", + }, + COMMAND_REGISTRATION_DONE +}; + struct command_context* command_init(const char *startup_tcl) { struct command_context* context = malloc(sizeof(struct command_context)); @@ -959,10 +992,7 @@ struct command_context* command_init(const char *startup_tcl) interp->cb_fflush = openocd_jim_fflush; interp->cb_fgets = openocd_jim_fgets; - COMMAND_REGISTER(context, NULL, "add_help_text", - handle_help_add_command, COMMAND_ANY, - "<command> [...] <help_text>] - " - "add new command help text"); + register_commands(context, NULL, command_builtin_handlers); #if !BUILD_ECOSBOARD Jim_EventLoopOnLoad(interp); @@ -976,19 +1006,6 @@ struct command_context* command_init(const char *startup_tcl) } Jim_DeleteAssocData(interp, "context"); - COMMAND_REGISTER(context, NULL, "sleep", - handle_sleep_command, COMMAND_ANY, - "<n> [busy] - sleep for n milliseconds. " - "\"busy\" means busy wait"); - - COMMAND_REGISTER(context, NULL, "help", - &handle_help_command, COMMAND_ANY, - "[<command_name> ...] - show built-in command help"); - COMMAND_REGISTER(context, NULL, "usage", - &handle_usage_command, COMMAND_ANY, - "[<command_name> ...] | " - "show command usage"); - return context; } |