diff mbox

[v1,02/15] android-console: Unify available commands output

Message ID 1415751963-4081-3-git-send-email-greg.bellows@linaro.org
State New
Headers show

Commit Message

Greg Bellows Nov. 12, 2014, 12:25 a.m. UTC
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(-)
diff mbox

Patch

diff --git a/android-console.c b/android-console.c
index c2e41da..be573b5 100644
--- a/android-console.c
+++ b/android-console.c
@@ -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");
 }
diff --git a/monitor.c b/monitor.c
index f071878..4222b7a 100644
--- a/monitor.c
+++ b/monitor.c
@@ -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)