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.
Signed-off-by: Zachary T Welch <[email protected]> --- src/helper/command.c | 52 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/helper/command.c b/src/helper/command.c index aa97806..36ad7af 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -903,6 +903,38 @@ 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> ...]", + }, + }; + struct command_context* command_init(const char *startup_tcl) { struct command_context* context = malloc(sizeof(struct command_context)); @@ -962,10 +994,9 @@ 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, + ARRAY_SIZE(command_builtin_handlers), + command_builtin_handlers); #if !BUILD_ECOSBOARD Jim_EventLoopOnLoad(interp); @@ -979,19 +1010,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; } -- 1.6.4.4 _______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
