aboutsummaryrefslogtreecommitdiffstats
path: root/set.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-07-01 17:52:05 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-07-01 17:52:05 +0200
commit5100caa16bb707d89f1873aca99b5f87abc1dd56 (patch)
treecb07ef3e313f9d6f4f5feb2231176c5e9a2a7a2a /set.c
parent0a3c243b6659dc10efb227e507f324c2711d6dcd (diff)
Added "account set" command.
Diffstat (limited to 'set.c')
-rw-r--r--set.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/set.c b/set.c
index b511a358..4620264f 100644
--- a/set.c
+++ b/set.c
@@ -100,6 +100,16 @@ int set_getint( set_t **head, char *key )
return i;
}
+int set_getbool( set_t **head, char *key )
+{
+ char *s = set_getstr( head, key );
+
+ if( !s )
+ return 0;
+
+ return bool2int( s );
+}
+
int set_setstr( set_t **head, char *key, char *value )
{
set_t *s = set_find( head, key );
@@ -165,7 +175,7 @@ char *set_eval_int( set_t *set, char *value )
char *s;
for( s = value; *s; s ++ )
- if( *s < '0' || *s > '9' )
+ if( !isdigit( *s ) )
return NULL;
return value;
@@ -173,11 +183,7 @@ char *set_eval_int( set_t *set, char *value )
char *set_eval_bool( set_t *set, char *value )
{
- if( ( g_strcasecmp( value, "true" ) == 0 ) || ( g_strcasecmp( value, "yes" ) == 0 ) || ( g_strcasecmp( value, "on" ) == 0 ) )
- return( value );
- if( ( g_strcasecmp( value, "false" ) == 0 ) || ( g_strcasecmp( value, "no" ) == 0 ) || ( g_strcasecmp( value, "off" ) == 0 ) )
- return( value );
- return( set_eval_int( set, value ) );
+ return is_bool( value ) ? value : NULL;
}
char *set_eval_to_char( set_t *set, char *value )