diff options
author | Christian Franke <chris@opensourcerouting.org> | 2013-09-16 21:23:57 +0200 |
---|---|---|
committer | Christian Franke <chris@opensourcerouting.org> | 2014-01-08 00:49:41 +0100 |
commit | fdc8614c306e5b61224d1ab4b63c00c558dbb07e (patch) | |
tree | 609374c0cafcba1e4f2bf6bd3dd44ae477b5265b /vtysh | |
parent | d30eb038466ae3d14862df08bf58ee80c00bf311 (diff) |
lib/command.c: rewrite command matching/parsing
Add support for keyword commands.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'vtysh')
-rw-r--r-- | vtysh/vtysh.c | 22 | ||||
-rw-r--r-- | vtysh/vtysh_main.c | 2 |
2 files changed, 11 insertions, 13 deletions
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index c575902c..34c3bd62 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -554,7 +554,7 @@ vtysh_rl_describe (void) vector vline; vector describe; int width; - struct desc *desc; + struct cmd_token *token; vline = cmd_make_strvec (rl_line_buffer); @@ -592,15 +592,15 @@ vtysh_rl_describe (void) /* Get width of command string. */ width = 0; for (i = 0; i < vector_active (describe); i++) - if ((desc = vector_slot (describe, i)) != NULL) + if ((token = vector_slot (describe, i)) != NULL) { int len; - if (desc->cmd[0] == '\0') + if (token->cmd[0] == '\0') continue; - len = strlen (desc->cmd); - if (desc->cmd[0] == '.') + len = strlen (token->cmd); + if (token->cmd[0] == '.') len--; if (width < len) @@ -608,19 +608,19 @@ vtysh_rl_describe (void) } for (i = 0; i < vector_active (describe); i++) - if ((desc = vector_slot (describe, i)) != NULL) + if ((token = vector_slot (describe, i)) != NULL) { - if (desc->cmd[0] == '\0') + if (token->cmd[0] == '\0') continue; - if (! desc->str) + if (! token->desc) fprintf (stdout," %-s\n", - desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd); + token->cmd[0] == '.' ? token->cmd + 1 : token->cmd); else fprintf (stdout," %-*s %s\n", width, - desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd, - desc->str); + token->cmd[0] == '.' ? token->cmd + 1 : token->cmd, + token->desc); } cmd_free_strvec (vline); diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c index 4a315a5c..48958f0f 100644 --- a/vtysh/vtysh_main.c +++ b/vtysh/vtysh_main.c @@ -299,8 +299,6 @@ main (int argc, char **argv, char **env) vty_init_vtysh (); - sort_node (); - /* Read vtysh configuration file before connecting to daemons. */ vtysh_read_config (config_default); |