diff --git a/subopt-helper.c b/subopt-helper.c index d1a169220f..6f4bcf6a30 100644 --- a/subopt-helper.c +++ b/subopt-helper.c @@ -45,18 +45,11 @@ static char const * parse_float( char const * const str, float * const valp ); * else a non-zero value is returned. * */ -int subopt_parse( char const * const str, opt_t * opts ) +int subopt_parse( char const * const str, const opt_t * opts ) { int parse_err = 0, idx; unsigned int parse_pos = 0; - /* Initialize set member to false. * - * It is set to true if it was found in str */ - for ( idx=0; opts[idx].name; ++idx ) - { - opts[idx].set = 0; - } - if ( str ) { while ( str[parse_pos] && !parse_err ) @@ -101,7 +94,7 @@ int subopt_parse( char const * const str, opt_t * opts ) if( strncmp( &str[parse_pos], opts[idx].name, opt_len ) == 0 ) { /* option was found */ - opts[idx].set = 1; next = 1; + next = 1; assert( opts[idx].valp && "Need a pointer to store the arg!" ); @@ -196,7 +189,7 @@ else if ( substr_len == opt_len+2 ) strncmp( &str[parse_pos+2], opts[idx].name, opt_len ) == 0 ) { /* option was found but negated */ - opts[idx].set = 1; next = 1; + next = 1; /* set arg to false */ *((int *)(opts[idx].valp)) = 0; diff --git a/subopt-helper.h b/subopt-helper.h index cd435d455b..ea6bdd5964 100644 --- a/subopt-helper.h +++ b/subopt-helper.h @@ -24,13 +24,10 @@ typedef struct opt_s int type; ///< option type as defined in subopt-helper.h void * valp; ///< pointer to the mem where the value should be stored opt_test_f test; ///< argument test func ( optional ) - int set; ///< Is set internally by the parser if the option was found. - ///< Don't use it at initialization of your opts, it will be - ///< overriden anyway! } opt_t; /** parses the string for the options specified in opt */ -int subopt_parse( char const * const str, opt_t * opts ); +int subopt_parse( char const * const str, const opt_t * opts ); /*------------------ arg specific types and declaration -------------------*/