summaryrefslogtreecommitdiff
path: root/common/command.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2009-05-24 19:17:29 +0200
committerWolfgang Denk <wd@denx.de>2009-06-12 20:45:48 +0200
commit94796d8544d4248028141bad11c6a74b840e9d6e (patch)
tree4608436c83a75470b86a144a020b388b5d5c91c8 /common/command.c
parent4c94f6c54bbc4dc5f418da01d8ec01e2adf636be (diff)
Make "usage" messages more helpful.
In case of incorrect command invocations U-Boot used to print pretty useless "usage" messages, for example: => nand markbad Usage: nand - NAND sub-system In the result, the user would have to run the "help" command to get the (available) information about correct command usage. Change this, so that this information gets always printed. Note that this changes the user interface of all commands, but hopefully to the better. Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'common/command.c')
-rw-r--r--common/command.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/common/command.c b/common/command.c
index c9a3f5bf6b..16f3afe394 100644
--- a/common/command.c
+++ b/common/command.c
@@ -286,21 +286,7 @@ int _do_help (cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t * cmdtp, int
*/
for (i = 1; i < argc; ++i) {
if ((cmdtp = find_cmd_tbl (argv[i], cmd_start, cmd_items )) != NULL) {
-#ifdef CONFIG_SYS_LONGHELP
- /* found - print (long) help info */
- puts (cmdtp->name);
- putc (' ');
- if (cmdtp->help) {
- puts (cmdtp->help);
- } else {
- puts ("- No help available.\n");
- rcode = 1;
- }
- putc ('\n');
-#else /* no long help available */
- if (cmdtp->usage)
- printf ("%s - %s\n", cmdtp->name, cmdtp->usage);
-#endif /* CONFIG_SYS_LONGHELP */
+ rcode |= cmd_usage(cmdtp);
} else {
printf ("Unknown command '%s' - try 'help'"
" without arguments for list of all"
@@ -386,9 +372,22 @@ cmd_tbl_t *find_cmd (const char *cmd)
return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
}
-void cmd_usage(cmd_tbl_t *cmdtp)
+int cmd_usage(cmd_tbl_t *cmdtp)
{
- printf("Usage:\n%s - %s\n\n", cmdtp->name, cmdtp->usage);
+ printf("%s - %s\n\n", cmdtp->name, cmdtp->usage);
+
+#ifdef CONFIG_SYS_LONGHELP
+ printf("Usage:\n%s ", cmdtp->name);
+
+ if (!cmdtp->help) {
+ puts ("- No additional help available.\n");
+ return 1;
+ }
+
+ puts (cmdtp->help);
+ putc ('\n');
+#endif /* CONFIG_SYS_LONGHELP */
+ return 0;
}
#ifdef CONFIG_AUTO_COMPLETE