# HG changeset patch # User Michael Spacefalcon # Date 1393227760 0 # Node ID f304f9bcde3badbee11afe4da9b381a3675c6dad # Parent 36ad667341fc76892a12721a4f75194493eacf75 fc-fsio: single command invokation implemented diff -r 36ad667341fc -r f304f9bcde3b rvinterf/etmsync/dispatch.c --- a/rvinterf/etmsync/dispatch.c Mon Feb 24 07:27:37 2014 +0000 +++ b/rvinterf/etmsync/dispatch.c Mon Feb 24 07:42:40 2014 +0000 @@ -61,6 +61,29 @@ return tp->func(ap - argv, argv); } +dispatch_ready_argv(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: no such command\n"); + return(ERROR_USAGE); + } + if (argc - 1 >= tp->maxargs) { + fprintf(stderr, "error: too many arguments\n"); + return(ERROR_USAGE); + } + if (argc - 1 < tp->minargs) { + fprintf(stderr, "error: too few arguments\n"); + return(ERROR_USAGE); + } + return tp->func(argc, argv); +} + cmd_exec(argc, argv) char **argv; { diff -r 36ad667341fc -r f304f9bcde3b rvinterf/etmsync/fsiomain.c --- a/rvinterf/etmsync/fsiomain.c Mon Feb 24 07:27:37 2014 +0000 +++ b/rvinterf/etmsync/fsiomain.c Mon Feb 24 07:42:40 2014 +0000 @@ -62,6 +62,8 @@ connect_local_socket(); } + if (argv[optind]) + return dispatch_ready_argv(argc - optind, argv + optind); for (;;) { if (isatty(0)) { rx_control(0);