@@ -242,8 +242,7 @@ void android_console_redir_remove(Monitor *mon, const QDict *qdict)
static const char *redir_list_help =
"list current port redirections. "
- "use 'redir add' and 'redir del' to add and remove them\n"
- "OK\n";
+ "use 'redir add' and 'redir del' to add and remove them\n";
static const char *redir_add_help =
"add a new port redirection, arguments must be:\n"
@@ -258,15 +257,13 @@ static const char *redir_add_help =
"\n"
"as an example, 'redir tcp:5000:6000' will allow any packets sent to\n"
"the host's TCP port 5000 to be routed to TCP port 6000 of the "
- "emulated device\n"
- "OK\n";
+ "emulated device\n";
static const char *redir_del_help =
"remove a port redirecion that was created with 'redir add', "
- "arguments must be:\n\n"
+ "arguments must be:\n"
" redir del <protocol>:<host-port>\n\n"
- "see the 'help redir add' for the meaning of <protocol> and <host-port>\n"
- "OK\n";
+ "see the 'help redir add' for the meaning of <protocol> and <host-port>\n";
void android_console_redir(Monitor *mon, const QDict *qdict)
{
@@ -291,12 +288,5 @@ void android_console_redir(Monitor *mon, const QDict *qdict)
"PORT redirection from the host to the device\n"
"as an example, 'redir tcp:5000:6000' will route "
"any packet sent to the host's TCP port 5000\n"
- "to TCP port 6000 of the emulated device\n"
- "\n"
- "available sub-commands:\n"
- " list list current redirections\n"
- " add add new redirection\n"
- " del remove existing redirection\n"
- "\n%s\n",
- helptext ? "OK" : "KO: missing sub-command");
+ "to TCP port 6000 of the emulated device\n");
}
@@ -943,7 +943,7 @@ static void do_help_cmd(Monitor *mon, const QDict *qdict)
static void android_console_help(Monitor *mon, const QDict *qdict)
{
const char *name = qdict_get_try_str(qdict, "helptext");
- const mon_cmd_t *cmd;
+ const mon_cmd_t *cmd, *subcmd;
const mon_cmd_t *cmds = mon->cmd_table;
char *args[MAX_ARGS];
int nb_args = 0;
@@ -957,7 +957,7 @@ static void android_console_help(Monitor *mon, const QDict *qdict)
monitor_printf(mon, " %-15s %s\n", cmd->name, cmd->help);
}
monitor_printf(mon,
- "\ntry 'help <command>' for command-specific help\n");
+ "\ntry 'help <command>' for command-specific help\nOK\n");
return;
}
@@ -1000,15 +1000,23 @@ static void android_console_help(Monitor *mon, const QDict *qdict)
parent_cmd->mhandler.cmd(mon, qdict);
} else if (cmd->sub_table) {
cmd->mhandler.cmd(mon, qdict);
+ monitor_printf(mon, "\navailable sub-commands:\n");
+ for (subcmd = cmd->sub_table; subcmd->name; subcmd++) {
+ monitor_printf(mon, " %-15s %s\n",
+ subcmd->name, subcmd->help);
+ }
+ monitor_printf(mon, "\n");
} else {
- monitor_printf(mon, "%s\nOK\n", cmd->help);
+ monitor_printf(mon, "%s\n", cmd->help);
}
- return;
+ break;
}
parent_cmd = cmd;
cmds = cmd->sub_table;
}
+
+ monitor_printf(mon, "OK\n");
}
static void do_trace_event_set_state(Monitor *mon, const QDict *qdict)
Moved the "available commands" print output to the top level help command handler to avoid repitition across all commands with sub-commands. Adjusted the redir command handler to no longer print out available commands. Adjusted "OK" message to be shared by all cases to avoid duplicates. Signed-off-by: Greg Bellows <greg.bellows@linaro.org> --- android-console.c | 20 +++++--------------- monitor.c | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 19 deletions(-)