aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--subopt-helper.c13
-rw-r--r--subopt-helper.h5
2 files changed, 4 insertions, 14 deletions
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 -------------------*/