diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-06-07 15:31:07 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-06-07 15:31:07 +0100 | 
| commit | 4aa0f6bc5645e124738ab15ad1eb65d4147dba25 (patch) | |
| tree | 0f15a76a814c33c8759c9d97253423ed12c0e1cc /set.c | |
| parent | 0d9d53ed0b3eb068cf57355a4d1465beaf191f8a (diff) | |
| parent | 1fdb0a48438d6dc4a4795d195737890ed3e46a96 (diff) | |
Merging killerbee stuff, bringing all the bleeding-edge stuff together.
Diffstat (limited to 'set.c')
| -rw-r--r-- | set.c | 33 | 
1 files changed, 24 insertions, 9 deletions
| @@ -28,7 +28,7 @@  /* Used to use NULL for this, but NULL is actually a "valid" value. */  char *SET_INVALID = "nee"; -set_t *set_add( set_t **head, char *key, char *def, set_eval eval, void *data ) +set_t *set_add( set_t **head, const char *key, const char *def, set_eval eval, void *data )  {  	set_t *s = set_find( head, key ); @@ -62,7 +62,7 @@ set_t *set_add( set_t **head, char *key, char *def, set_eval eval, void *data )  	return s;  } -set_t *set_find( set_t **head, char *key ) +set_t *set_find( set_t **head, const char *key )  {  	set_t *s = *head; @@ -77,7 +77,7 @@ set_t *set_find( set_t **head, char *key )  	return s;  } -char *set_getstr( set_t **head, char *key ) +char *set_getstr( set_t **head, const char *key )  {  	set_t *s = set_find( head, key ); @@ -87,7 +87,7 @@ char *set_getstr( set_t **head, char *key )  	return s->value ? s->value : s->def;  } -int set_getint( set_t **head, char *key ) +int set_getint( set_t **head, const char *key )  {  	char *s = set_getstr( head, key );  	int i = 0; @@ -101,7 +101,7 @@ int set_getint( set_t **head, char *key )  	return i;  } -int set_getbool( set_t **head, char *key ) +int set_getbool( set_t **head, const char *key )  {  	char *s = set_getstr( head, key ); @@ -111,7 +111,7 @@ int set_getbool( set_t **head, char *key )  	return bool2int( s );  } -int set_setstr( set_t **head, char *key, char *value ) +int set_setstr( set_t **head, const char *key, char *value )  {  	set_t *s = set_find( head, key );  	char *nv = value; @@ -150,7 +150,7 @@ int set_setstr( set_t **head, char *key, char *value )  	return 1;  } -int set_setint( set_t **head, char *key, int value ) +int set_setint( set_t **head, const char *key, int value )  {  	char s[24];	/* Not quite 128-bit clean eh? ;-) */ @@ -158,7 +158,7 @@ int set_setint( set_t **head, char *key, int value )  	return set_setstr( head, key, s );  } -void set_del( set_t **head, char *key ) +void set_del( set_t **head, const char *key )  {  	set_t *s = *head, *t = NULL; @@ -183,7 +183,7 @@ void set_del( set_t **head, char *key )  	}  } -int set_reset( set_t **head, char *key ) +int set_reset( set_t **head, const char *key )  {  	set_t *s; @@ -214,6 +214,21 @@ char *set_eval_bool( set_t *set, char *value )  	return is_bool( value ) ? value : SET_INVALID;  } +char *set_eval_list( set_t *set, char *value ) +{ +	GSList *options = set->eval_data, *opt; +	 +	for( opt = options; opt; opt = opt->next ) +		if( strcmp( value, opt->data ) == 0 ) +			return value; +	 +	/* TODO: It'd be nice to show the user a list of allowed values, +	         but we don't have enough context here to do that. May +	         want to fix that. */ +	 +	return NULL; +} +  char *set_eval_to_char( set_t *set, char *value )  {  	char *s = g_new( char, 3 ); | 
