diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2010-01-02 15:52:35 -0800 |
---|---|---|
committer | David Brownell <dbrownell@users.sourceforge.net> | 2010-01-02 15:52:35 -0800 |
commit | b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26 (patch) | |
tree | 41b3da25e64baedc94156b296b8626fec55844b2 /src/helper | |
parent | 9d167d62f2eadf81e0028e471e05154c9aabbbfb (diff) | |
download | openocd+libswd-b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26.tar.gz openocd+libswd-b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26.tar.bz2 openocd+libswd-b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26.tar.xz openocd+libswd-b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26.zip |
streamline and document helptext mode displays
Most commands are usable only at runtime; so don't bother saying
that, it's noise. Moreover, tokens like EXEC are cryptic. Be
more clear: highlight only the commands which may (also) be used
during the config stage, thus matching the docs more closely.
There are
- Configuration commands (per documentation)
- And also some commands that valid at *any* time.
Update the docs to note that "help" now shows this mode info.
This also highlighted a few mistakes in command configuration,
mostly commands listed as "valid at any time" which shouldn't
have been. This just fixes ones I noted when sanity testing.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/helper')
-rw-r--r-- | src/helper/command.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index b4e31ea1..ab827859 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -914,7 +914,7 @@ static COMMAND_HELPER(command_help_show, struct command *c, unsigned n, bool is_match = (strstr(cmd_name, match) != NULL) || ((c->usage != NULL) && (strstr(c->usage, match) != NULL)) || ((c->help != NULL) && (strstr(c->help, match) != NULL)); - + if (is_match) { command_help_show_indent(n); @@ -934,15 +934,27 @@ static COMMAND_HELPER(command_help_show, struct command *c, unsigned n, if (is_match && show_help) { - const char *stage_msg; - switch (c->mode) { - case COMMAND_CONFIG: stage_msg = "CONFIG"; break; - case COMMAND_EXEC: stage_msg = "EXEC"; break; - case COMMAND_ANY: stage_msg = "CONFIG or EXEC"; break; - default: stage_msg = "***UNKNOWN***"; break; - } - char *msg = alloc_printf("%s%sValid Modes: %s", - c->help ? : "", c->help ? " " : "", stage_msg); + char *msg; + + /* Normal commands are runtime-only; highlight exceptions */ + if (c->mode != COMMAND_EXEC) { + const char *stage_msg = ""; + + switch (c->mode) { + case COMMAND_CONFIG: + stage_msg = " (configuration command)"; + break; + case COMMAND_ANY: + stage_msg = " (command valid any time)"; + break; + default: + stage_msg = " (?mode error?)"; + break; + } + msg = alloc_printf("%s%s", c->help ? : "", stage_msg); + } else + msg = alloc_printf("%s", c->help ? : ""); + if (NULL != msg) { command_help_show_wrap(msg, n + 3, n + 3); |