aboutsummaryrefslogtreecommitdiff
path: root/src/helper
diff options
context:
space:
mode:
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-09-10 00:13:09 +0200
committerSpencer Oliver <spen@spen-soft.co.uk>2014-09-22 19:40:38 +0000
commitc0b8e605f7d8cbefcd7a9e47261aa2e06dd2b4e1 (patch)
tree11d694a4ea70dbd40a28cd0e4ee3fea9e4ee43f4 /src/helper
parent1c021ed0afb5f9f7d9e8cbce53a4fe985a4c2235 (diff)
downloadriscv-openocd-c0b8e605f7d8cbefcd7a9e47261aa2e06dd2b4e1.zip
riscv-openocd-c0b8e605f7d8cbefcd7a9e47261aa2e06dd2b4e1.tar.gz
riscv-openocd-c0b8e605f7d8cbefcd7a9e47261aa2e06dd2b4e1.tar.bz2
command: Fix confusing syntax error message
If the user executes a command with an invalid subcommand, the error message is extremely unhelpful: > flash write test.elf flash write test.elf: command requires more arguments This is because any command line that starts with a valid command group is classified as a group, triggering ocd_bouncer to print the confusing message. Fix by requiring that to be a command group, the command line must not contain any unknown tokens after the last valid (sub-)command group. That is OK because command groups don't have handlers defined and thus can't take any parameters. Also fix the error message for "unknown" type to be similar to the error message that is printed (by Jim) for non-existent primary commands. Change-Id: I26950349f0909fd3961c4f9ab9b198c221cea9fc Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/2285 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/command.c4
-rw-r--r--src/helper/startup.tcl2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index 137ac7e..c29f113 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -1070,8 +1070,10 @@ static int jim_command_type(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
Jim_SetResultString(interp, "native", -1);
else if (c->handler)
Jim_SetResultString(interp, "simple", -1);
- else
+ else if (remaining == 0)
Jim_SetResultString(interp, "group", -1);
+ else
+ Jim_SetResultString(interp, "unknown", -1);
return JIM_OK;
}
diff --git a/src/helper/startup.tcl b/src/helper/startup.tcl
index a7c0d58..926d26b 100644
--- a/src/helper/startup.tcl
+++ b/src/helper/startup.tcl
@@ -30,7 +30,7 @@ proc ocd_bouncer {name args} {
set errmsg [format "%s: command requires more arguments" \
[concat $name " " $args]]
} else {
- set errmsg [format "Unknown command type: %s" $type]
+ set errmsg [format "invalid subcommand \"%s\"" $args]
}}}
return -code error $errmsg
}