diff options
Diffstat (limited to 'vlib/vlib/cli.c')
-rw-r--r-- | vlib/vlib/cli.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/vlib/vlib/cli.c b/vlib/vlib/cli.c index e5163f260e1..e0e54fd4f65 100644 --- a/vlib/vlib/cli.c +++ b/vlib/vlib/cli.c @@ -296,6 +296,24 @@ all_subs (vlib_cli_main_t * cm, return subs; } +static int +vlib_cli_cmp_rule (void * a1, void * a2) +{ + vlib_cli_sub_rule_t * r1 = a1; + vlib_cli_sub_rule_t * r2 = a2; + + return vec_cmp (r1->name, r2->name); +} + +static int +vlib_cli_cmp_command (void * a1, void * a2) +{ + vlib_cli_command_t * c1 = a1; + vlib_cli_command_t * c2 = a2; + + return vec_cmp (c1->path, c2->path); +} + static clib_error_t * vlib_cli_dispatch_sub_commands (vlib_main_t * vm, vlib_cli_main_t * cm, @@ -351,7 +369,7 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm, sr->rule_index = ~0; } - vec_sort (subs, c1, c2, vec_cmp (c1->name, c2->name)); + vec_sort_with_function (subs, vlib_cli_cmp_rule); for (i = 0; i < vec_len (subs); i++) { @@ -382,7 +400,7 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm, vlib_cli_command_t * sub, * subs; subs = all_subs (cm, 0, parent_command_index); - vec_sort (subs, c1, c2, vec_cmp (c1->path, c2->path)); + vec_sort_with_function (subs, vlib_cli_cmp_command); vec_foreach (sub, subs) vlib_cli_output (vm, " %-40U %U", format_vlib_cli_path, sub->path, |