diff options
Diffstat (limited to 'cli/src/cli-cmd.c')
-rw-r--r-- | cli/src/cli-cmd.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cli/src/cli-cmd.c b/cli/src/cli-cmd.c index 99448fcae56..a1e4e909a0d 100644 --- a/cli/src/cli-cmd.c +++ b/cli/src/cli-cmd.c @@ -390,3 +390,28 @@ cli_cmd_submit (struct rpc_clnt* rpc, void *req, call_frame_t *frame, gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret); return ret; } + +int +cli_cmd_pattern_cmp (void *a, void *b) +{ + struct cli_cmd *ia = NULL; + struct cli_cmd *ib = NULL; + int ret = 0; + + ia = a; + ib = b; + if (strcmp (ia->pattern, ib->pattern) > 0) + ret = 1; + else if (strcmp (ia->pattern, ib->pattern) < 0) + ret = -1; + else + ret = 0; + return ret; +} + +void +cli_cmd_sort (struct cli_cmd *cmd, int count) +{ + gf_array_insertionsort (cmd, 1, count - 2, sizeof(struct cli_cmd), + cli_cmd_pattern_cmp); +} |