FreeCalypso > hg > freecalypso-tools
diff rvinterf/tmsh/usercmd.c @ 71:27c41e4b21ae
fc-tmsh one-shot operation mode implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 26 Oct 2016 23:51:47 +0000 |
parents | 2159f260ed13 |
children | 2825d79bb151 |
line wrap: on
line diff
--- a/rvinterf/tmsh/usercmd.c Wed Oct 26 23:33:21 2016 +0000 +++ b/rvinterf/tmsh/usercmd.c Wed Oct 26 23:51:47 2016 +0000 @@ -8,6 +8,7 @@ #include <string.h> #include <strings.h> #include <stdlib.h> +#include "exitcodes.h" extern char usercmd[]; @@ -120,3 +121,27 @@ *ap = 0; tp->func(ap - argv, argv); } + +dispatch_oneshot_cmd(argc, argv) + char **argv; +{ + struct cmdtab *tp; + + for (tp = cmdtab; tp->cmd; tp++) + if (!strcmp(tp->cmd, argv[0])) + break; + if (!tp->func) { + fprintf(stderr, + "error: \"%s\" is not a valid command\n", argv[0]); + exit(ERROR_USAGE); + } + if (argc - 1 > tp->maxargs) { + fprintf(stderr, "%s: too many arguments\n", tp->cmd); + exit(ERROR_USAGE); + } + if (argc - 1 < tp->minargs) { + fprintf(stderr, "%s: too few arguments\n", tp->cmd); + exit(ERROR_USAGE); + } + return tp->func(argc, argv); +}