summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-21 15:52:12 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-24 21:37:32 -0800
commit16e0404777581e55bb42b95f5c9208b2c411debe (patch)
tree8d95edada1337e90d13593ebd1ddf41f944ac9c4
parente7fd1d3d5031a98e56503c46baa0c2f23ac7d88c (diff)
downloadopenocd_libswd-16e0404777581e55bb42b95f5c9208b2c411debe.tar.gz
openocd_libswd-16e0404777581e55bb42b95f5c9208b2c411debe.tar.bz2
openocd_libswd-16e0404777581e55bb42b95f5c9208b2c411debe.tar.xz
openocd_libswd-16e0404777581e55bb42b95f5c9208b2c411debe.zip
demonstrate chaining with foo commands
Use the new command registration chaining capabilities to eliminate the foo_register_commands helper, folding its remaining command handler setup into the hello_command_handlers registration array.
-rw-r--r--src/hello.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/hello.c b/src/hello.c
index 6f024948..9a1bf925 100644
--- a/src/hello.c
+++ b/src/hello.c
@@ -75,16 +75,6 @@ static const struct command_registration foo_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-int foo_register_commands(struct command_context *cmd_ctx)
-{
- // register several commands under the foo command
- struct command *cmd = COMMAND_REGISTER(cmd_ctx, NULL, "foo",
- NULL, COMMAND_ANY, "example command handler skeleton");
-
-
- return register_commands(cmd_ctx, cmd, foo_command_handlers);
-}
-
static COMMAND_HELPER(handle_hello_args, const char **sep, const char **name)
{
if (CMD_ARGC > 1)
@@ -119,12 +109,17 @@ static const struct command_registration hello_command_handlers[] = {
.help = "prints a warm welcome",
.usage = "[<name>]",
},
+ {
+ .name = "foo",
+ .mode = COMMAND_ANY,
+ .help = "example command handler skeleton",
+
+ .chain = foo_command_handlers,
+ },
COMMAND_REGISTRATION_DONE
};
int hello_register_commands(struct command_context *cmd_ctx)
{
- foo_register_commands(cmd_ctx);
-
return register_commands(cmd_ctx, NULL, hello_command_handlers);
}