From 58a6493596ed680de4b97febbd8a3406edbde8b2 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 14 Jul 2009 23:26:10 +0000 Subject: [PATCH] fixed command line arguments to follow standards --- src/makeBaseApp/top/caServerApp/main.cc | 69 +++++++++++++++++-------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/src/makeBaseApp/top/caServerApp/main.cc b/src/makeBaseApp/top/caServerApp/main.cc index da64fca14..da7dea85d 100644 --- a/src/makeBaseApp/top/caServerApp/main.cc +++ b/src/makeBaseApp/top/caServerApp/main.cc @@ -9,6 +9,7 @@ \*************************************************************************/ #include "envDefs.h" +#include "errlog.h" #include "exServer.h" #include "fdManager.h" @@ -17,7 +18,7 @@ // main() // (example single threaded ca server tool main loop) // -extern int main (int argc, const char **argv) +extern int main ( int argc, const char **argv ) { epicsTime begin (epicsTime::getCurrent()); exServer *pCAS; @@ -31,34 +32,60 @@ extern int main (int argc, const char **argv) bool forever = true; int i; - for ( i = 1; i < argc; i++ ) { - if ( sscanf(argv[i], "-d %u", & debugLevel ) == 1 ) { - continue; + i = 1; + while ( i < argc ) { + if ( strcmp ( argv[i], "-d" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%u", & debugLevel ) == 1 ) { + i += 2; + continue; + } } - if ( sscanf ( argv[i],"-t %lf", & executionTime ) == 1 ) { - forever = false; - continue; + if ( strcmp ( argv[i],"-t" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%lf", & executionTime ) == 1 ) { + forever = false; + i += 2; + continue; + } } - if ( sscanf ( argv[i], "-p %127s", pvPrefix ) == 1 ) { - continue; + if ( strcmp ( argv[i], "-p" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%127s", pvPrefix ) == 1 ) { + i += 2; + continue; + } } - if ( sscanf ( argv[i],"-c %u", & aliasCount ) == 1 ) { - continue; + if ( strcmp ( argv[i], "-c" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%u", & aliasCount ) == 1 ) { + i += 2; + continue; + } } - if ( sscanf ( argv[i],"-s %u", & scanOn ) == 1 ) { - continue; + if ( strcmp ( argv[i], "-s" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%u", & scanOn ) == 1 ) { + i += 2; + continue; + } } - if ( sscanf ( argv[i],"-a %63s", arraySize ) == 1 ) { - continue; + if ( strcmp ( argv[i], "-a" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%63s", arraySize ) == 1 ) { + i += 2; + continue; + } } - if ( sscanf ( argv[i],"-ss %u", & syncScan ) == 1 ) { - continue; + if ( strcmp ( argv[i],"-ss" ) == 0 ) { + if ( i+1 < argc && sscanf ( argv[i+1], "%u", & syncScan ) == 1 ) { + i += 2; + continue; + } + } + printf ( "\"%s\"?\n", argv[i] ); + if ( i + 1 < argc ) { + printf ( "\"%s\"?\n", argv[i+1] ); } - printf ("\"%s\"?\n", argv[i]); printf ( - "usage: %s [-d -t -p " - "-c -s<1=scan on (default), 0=scan off> " - "-ss<1=synchronous scan (default), 0=asynchronous scan>]\n", + "usage: %s [-d -t -p " + "-c -s <1=scan on (default), 0=scan off> " + "-ss <1=synchronous scan (default), 0=asynchronous scan> " + "-a \n", argv[0]); return (1);