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

Reply via email to