diff options
author | Tim Newsome <tim@sifive.com> | 2020-12-31 13:40:49 -0800 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2020-12-31 13:40:49 -0800 |
commit | 11b8110443bbd158f73c7bf00a52bd6863d6b42f (patch) | |
tree | 23cb0e565256d2c94b0774acbf8156f19e409ef2 /src/helper/command.c | |
parent | b8620764c09cbb05d8179fd5f520110fee114417 (diff) | |
parent | c69b4deae36a7bcbab5df80ec2a5dbfd652e25ac (diff) | |
download | riscv-openocd-11b8110443bbd158f73c7bf00a52bd6863d6b42f.zip riscv-openocd-11b8110443bbd158f73c7bf00a52bd6863d6b42f.tar.gz riscv-openocd-11b8110443bbd158f73c7bf00a52bd6863d6b42f.tar.bz2 |
Merge branch 'master' into from_upstream
Conflicts:
.github/workflows/snapshot.yml
.gitmodules
src/flash/nor/drivers.c
src/helper/jep106.inc
src/rtos/hwthread.c
src/target/riscv/riscv.c
src/target/target.c
Change-Id: I62f65e10d15dcda4c405d4042cce1d96f8e1680a
Diffstat (limited to 'src/helper/command.c')
-rw-r--r-- | src/helper/command.c | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index cfaa1f7..96b1244 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -349,7 +349,9 @@ static int register_command_handler(struct command_context *cmd_ctx, { Jim_Interp *interp = cmd_ctx->interp; +#if 0 LOG_DEBUG("registering '%s'...", c->name); +#endif Jim_CmdProc *func = c->handler ? &script_command : &command_unknown; int retval = Jim_CreateCommand(interp, c->name, func, c, NULL); @@ -920,39 +922,29 @@ COMMAND_HANDLER(handle_help_command) bool full = strcmp(CMD_NAME, "help") == 0; int retval; struct command *c = CMD_CTX->commands; - char *cmd_match = NULL; - - if (CMD_ARGC == 0) - cmd_match = ""; - else if (CMD_ARGC >= 1) { - unsigned i; - - for (i = 0; i < CMD_ARGC; ++i) { - if (NULL != cmd_match) { - char *prev = cmd_match; - - cmd_match = alloc_printf("%s %s", cmd_match, CMD_ARGV[i]); - free(prev); - if (NULL == cmd_match) { - LOG_ERROR("unable to build search string"); - return -ENOMEM; - } - } else { - cmd_match = alloc_printf("%s", CMD_ARGV[i]); - if (NULL == cmd_match) { - LOG_ERROR("unable to build search string"); - return -ENOMEM; - } - } + char *cmd_match; + + if (CMD_ARGC <= 0) + cmd_match = strdup(""); + + else { + cmd_match = strdup(CMD_ARGV[0]); + + for (unsigned int i = 1; i < CMD_ARGC && cmd_match; ++i) { + char *prev = cmd_match; + cmd_match = alloc_printf("%s %s", prev, CMD_ARGV[i]); + free(prev); } - } else - return ERROR_COMMAND_SYNTAX_ERROR; + } + if (cmd_match == NULL) { + LOG_ERROR("unable to build search string"); + return -ENOMEM; + } retval = CALL_COMMAND_HANDLER(command_help_show_list, c, 0, full, cmd_match); - if (CMD_ARGC >= 1) - free(cmd_match); + free(cmd_match); return retval; } |