From 25a7ac2c756c78603c9c99d06f55717440409a23 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Fri, 20 Nov 2009 13:36:07 -0800 Subject: [PATCH] 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. --- src/helper/command.c | 51 +++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/src/helper/command.c b/src/helper/command.c index df4667b92..28952fda6 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 = " [...] ]", + }, + { + .name = "sleep", + .handler = &handle_sleep_command, + .mode = COMMAND_ANY, + .help = "sleep for n milliseconds. " + "\"busy\" will busy wait", + .usage = " [busy]", + }, + { + .name = "help", + .handler = &handle_help_command, + .mode = COMMAND_ANY, + .help = "show built-in command help", + .usage = "[ ...]", + }, + { + .name = "usage", + .handler = &handle_usage_command, + .mode = COMMAND_ANY, + .help = "show command usage", + .usage = "[ ...]", + }, + 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, - " [...] ] - " - "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, - " [busy] - sleep for n milliseconds. " - "\"busy\" means busy wait"); - - COMMAND_REGISTER(context, NULL, "help", - &handle_help_command, COMMAND_ANY, - "[ ...] - show built-in command help"); - COMMAND_REGISTER(context, NULL, "usage", - &handle_usage_command, COMMAND_ANY, - "[ ...] | " - "show command usage"); - return context; }