From f7a9549bd6ad83f2e0bceec9cddacfa5e3f84a54 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Mon, 1 May 2006 17:11:04 +0000 Subject: libbu++ is finally laid out the way it should be, trunk, branches, and tags. --- src/pproc.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/pproc.cpp (limited to 'src/pproc.cpp') diff --git a/src/pproc.cpp b/src/pproc.cpp new file mode 100644 index 0000000..f5cb869 --- /dev/null +++ b/src/pproc.cpp @@ -0,0 +1,60 @@ +#include +#include +#include "pproc.h" + +void processParams( int argc, char *argv[], PPROC *pproc ) +{ + // Loop over all the params except the first, no params, no looping! + for( int j = 1; j < argc; j++ ) + { + //printf("Param[%d]: \"%s\"\n", j, argv[j] ); + if( argv[j][0] == '-' ) + { + if( argv[j][1] == '-' ) + { + // Proccess a long-word param string + for( int k = 0; + pproc[k].proc != NULL || pproc[k].stateVar != NULL; + k++ ) + { + if( !strcmp( pproc[k].lpWord, &argv[j][2] ) ) + { + if( pproc[k].proc != NULL ) + { + j += pproc[k].proc( argc-j, &argv[j] ); + } + if( pproc[k].stateVar != NULL ) + { + (*(pproc[k].stateVar)) = pproc[k].bSetState; + } + } + } + } + else + { + // Process a one char param string + for( int k = 0; + pproc[k].proc != NULL || pproc[k].stateVar != NULL; + k++ ) + { + if( pproc[k].cChar == argv[j][1] ) + { + if( pproc[k].proc != NULL ) + { + j += pproc[k].proc( argc-j, &argv[j] ); + } + if( pproc[k].stateVar != NULL ) + { + (*(pproc[k].stateVar)) = pproc[k].bSetState; + } + } + } + } + } + else + { + // Handle generic params here. + } + } +} + -- cgit v1.2.3