aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-05-25 15:49:26 -0700
committerBen Pfaff <blp@nicira.com>2010-05-25 15:49:26 -0700
commit3c442619836797b78bbb3472385a4982582cb907 (patch)
treebbd1036c7c018675682995e5b8f3b88575192b15
parent65d9d5f8b8fd548f411c512e946cf2408182a1d4 (diff)
unixctl: Sort list of commands output by "help".
Feature #2873.
-rw-r--r--lib/unixctl.c15
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);
}