diff options
author | Ben Pfaff <blp@nicira.com> | 2010-05-25 15:49:26 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2010-05-25 15:49:26 -0700 |
commit | 3c442619836797b78bbb3472385a4982582cb907 (patch) | |
tree | bbd1036c7c018675682995e5b8f3b88575192b15 | |
parent | 65d9d5f8b8fd548f411c512e946cf2408182a1d4 (diff) |
unixctl: Sort list of commands output by "help".
Feature #2873.
-rw-r--r-- | lib/unixctl.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/unixctl.c b/lib/unixctl.c index b52d3d1e..70785682 100644 --- a/lib/unixctl.c +++ b/lib/unixctl.c @@ -34,6 +34,7 @@ #include "poll-loop.h" #include "shash.h" #include "socket-util.h" +#include "svec.h" #include "util.h" #ifndef SCM_CREDENTIALS @@ -82,11 +83,23 @@ unixctl_help(struct unixctl_conn *conn, const char *args OVS_UNUSED, { struct ds ds = DS_EMPTY_INITIALIZER; struct shash_node *node; + struct svec names; + const char *name; + size_t i; ds_put_cstr(&ds, "The available commands are:\n"); + + svec_init(&names); SHASH_FOR_EACH (node, &commands) { - ds_put_format(&ds, "\t%s\n", node->name); + svec_add(&names, node->name); + } + svec_sort(&names); + + SVEC_FOR_EACH (i, name, &names) { + ds_put_format(&ds, "\t%s\n", name); } + svec_destroy(&names); + unixctl_command_reply(conn, 214, ds_cstr(&ds)); ds_destroy(&ds); } |