diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2006-08-13 21:15:23 +0200 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2006-08-13 21:15:23 +0200 | 
| commit | d5ccd83c5235528df2481003502647b86b41fdc4 (patch) | |
| tree | 815eee950afac579adda12b8b2022bda072fe6cd | |
| parent | 846cec61f2b94be60c7bae7f4d0de8952e2d45fa (diff) | |
Extra comments in set.h and now properly using set_getbool() instead of
set_getint().
| -rw-r--r-- | irc.c | 4 | ||||
| -rw-r--r-- | protocols/nogaim.c | 34 | ||||
| -rw-r--r-- | protocols/oscar/oscar.c | 4 | ||||
| -rw-r--r-- | protocols/oscar/rxhandlers.c | 4 | ||||
| -rw-r--r-- | root_commands.c | 2 | ||||
| -rw-r--r-- | set.h | 36 | ||||
| -rw-r--r-- | user.c | 2 | 
7 files changed, 54 insertions, 32 deletions
| @@ -212,7 +212,7 @@ void irc_free(irc_t * irc)  	log_message( LOGLVL_INFO, "Destroying connection with fd %d", irc->fd ); -	if( irc->status & USTATUS_IDENTIFIED && set_getint( &irc->set, "save_on_quit" ) )  +	if( irc->status & USTATUS_IDENTIFIED && set_getbool( &irc->set, "save_on_quit" ) )   		if( storage_save( irc, TRUE ) != STORAGE_OK )  			irc_usermsg( irc, "Error while saving settings!" ); @@ -1057,7 +1057,7 @@ void buddy_send_handler( irc_t *irc, user_t *u, char *msg, int flags )  {  	if( !u || !u->gc ) return; -	if( set_getint( &irc->set, "buddy_sendbuffer" ) && set_getint( &irc->set, "buddy_sendbuffer_delay" ) > 0 ) +	if( set_getbool( &irc->set, "buddy_sendbuffer" ) && set_getint( &irc->set, "buddy_sendbuffer_delay" ) > 0 )  	{  		int delay; diff --git a/protocols/nogaim.c b/protocols/nogaim.c index f0008385..47e2bda6 100644 --- a/protocols/nogaim.c +++ b/protocols/nogaim.c @@ -207,7 +207,7 @@ void serv_got_crap( struct gaim_connection *gc, char *format, ... )  	va_end( params );  	if( ( g_strcasecmp( set_getstr( &gc->irc->set, "strip_html" ), "always" ) == 0 ) || -	    ( ( gc->flags & OPT_CONN_HTML ) && set_getint( &gc->irc->set, "strip_html" ) ) ) +	    ( ( gc->flags & OPT_CONN_HTML ) && set_getbool( &gc->irc->set, "strip_html" ) ) )  		strip_html( text );  	/* Try to find a different connection on the same protocol. */ @@ -352,12 +352,12 @@ void add_buddy( struct gaim_connection *gc, char *group, char *handle, char *rea  	char *s;  	irc_t *irc = gc->irc; -	if( set_getint( &irc->set, "debug" ) && 0 ) /* This message is too useless */ +	if( set_getbool( &irc->set, "debug" ) && 0 ) /* This message is too useless */  		serv_got_crap( gc, "Receiving user add from handle: %s", handle );  	if( user_findhandle( gc, handle ) )  	{ -		if( set_getint( &irc->set, "debug" ) ) +		if( set_getbool( &irc->set, "debug" ) )  			serv_got_crap( gc, "User already exists, ignoring add request: %s", handle );  		return; @@ -445,7 +445,7 @@ void serv_buddy_rename( struct gaim_connection *gc, char *handle, char *realname  		u->realname = g_strdup( realname ); -		if( ( gc->flags & OPT_LOGGED_IN ) && set_getint( &gc->irc->set, "display_namechanges" ) ) +		if( ( gc->flags & OPT_LOGGED_IN ) && set_getbool( &gc->irc->set, "display_namechanges" ) )  			serv_got_crap( gc, "User `%s' changed name to `%s'", u->nick, u->realname );  	}  } @@ -508,7 +508,7 @@ void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, in  		}  		else  		{ -			if( set_getint( &gc->irc->set, "debug" ) || g_strcasecmp( set_getstr( &gc->irc->set, "handle_unknown" ), "ignore" ) != 0 ) +			if( set_getbool( &gc->irc->set, "debug" ) || g_strcasecmp( set_getstr( &gc->irc->set, "handle_unknown" ), "ignore" ) != 0 )  			{  				serv_got_crap( gc, "serv_got_update() for handle %s:", handle );  				serv_got_crap( gc, "loggedin = %d, type = %d", loggedin, type ); @@ -567,7 +567,7 @@ void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, in  		u->away = NULL;  	/* LISPy... */ -	if( ( set_getint( &gc->irc->set, "away_devoice" ) ) &&		/* Don't do a thing when user doesn't want it */ +	if( ( set_getbool( &gc->irc->set, "away_devoice" ) ) &&		/* Don't do a thing when user doesn't want it */  	    ( u->online ) &&						/* Don't touch offline people */  	    ( ( ( u->online != oo ) && !u->away ) ||			/* Voice joining people */  	      ( ( u->online == oo ) && ( oa == !u->away ) ) ) )		/* (De)voice people changing state */ @@ -590,14 +590,14 @@ void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 f  		if( g_strcasecmp( h, "ignore" ) == 0 )  		{ -			if( set_getint( &irc->set, "debug" ) ) +			if( set_getbool( &irc->set, "debug" ) )  				serv_got_crap( gc, "Ignoring message from unknown handle %s", handle );  			return;  		}  		else if( g_strncasecmp( h, "add", 3 ) == 0 )  		{ -			int private = set_getint( &irc->set, "private" ); +			int private = set_getbool( &irc->set, "private" );  			if( h[3] )  			{ @@ -619,7 +619,7 @@ void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 f  	}  	if( ( g_strcasecmp( set_getstr( &gc->irc->set, "strip_html" ), "always" ) == 0 ) || -	    ( ( gc->flags & OPT_CONN_HTML ) && set_getint( &gc->irc->set, "strip_html" ) ) ) +	    ( ( gc->flags & OPT_CONN_HTML ) && set_getbool( &gc->irc->set, "strip_html" ) ) )  		strip_html( msg );  	while( strlen( msg ) > 425 ) @@ -659,7 +659,7 @@ void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int  {  	user_t *u; -	if( !set_getint( &gc->irc->set, "typing_notice" ) ) +	if( !set_getbool( &gc->irc->set, "typing_notice" ) )  		return;  	if( ( u = user_findhandle( gc, handle ) ) ) { @@ -681,7 +681,7 @@ void serv_got_chat_left( struct gaim_connection *gc, int id )  	struct conversation *c, *l = NULL;  	GList *ir; -	if( set_getint( &gc->irc->set, "debug" ) ) +	if( set_getbool( &gc->irc->set, "debug" ) )  		serv_got_crap( gc, "You were removed from conversation %d", (int) id );  	for( c = gc->conversations; c && c->id != id; c = (l=c)->next ); @@ -727,7 +727,7 @@ void serv_got_chat_in( struct gaim_connection *gc, int id, char *who, int whispe  	for( c = gc->conversations; c && c->id != id; c = c->next );  	if( ( g_strcasecmp( set_getstr( &gc->irc->set, "strip_html" ), "always" ) == 0 ) || -	    ( ( gc->flags & OPT_CONN_HTML ) && set_getint( &gc->irc->set, "strip_html" ) ) ) +	    ( ( gc->flags & OPT_CONN_HTML ) && set_getbool( &gc->irc->set, "strip_html" ) ) )  		strip_html( msg );  	if( c && u ) @@ -760,7 +760,7 @@ struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, c  	c->channel = g_strdup( s );  	g_free( s ); -	if( set_getint( &gc->irc->set, "debug" ) ) +	if( set_getbool( &gc->irc->set, "debug" ) )  		serv_got_crap( gc, "Creating new conversation: (id=%d,handle=%s)", id, handle );  	return( c ); @@ -774,7 +774,7 @@ void add_chat_buddy( struct conversation *b, char *handle )  	user_t *u = user_findhandle( b->gc, handle );  	int me = 0; -	if( set_getint( &b->gc->irc->set, "debug" ) ) +	if( set_getbool( &b->gc->irc->set, "debug" ) )  		serv_got_crap( b->gc, "User %s added to conversation %d", handle, b->id );  	/* It might be yourself! */ @@ -808,7 +808,7 @@ void remove_chat_buddy( struct conversation *b, char *handle, char *reason )  	user_t *u;  	int me = 0; -	if( set_getint( &b->gc->irc->set, "debug" ) ) +	if( set_getbool( &b->gc->irc->set, "debug" ) )  		serv_got_crap( b->gc, "User %s removed from conversation %d (%s)", handle, b->id, reason ? reason : "" );  	/* It might be yourself! */ @@ -886,7 +886,7 @@ char *set_eval_away_devoice( set_t *set, char *value )  	/* Horror.... */ -	if( st != set_getint( &irc->set, "away_devoice" ) ) +	if( st != set_getbool( &irc->set, "away_devoice" ) )  	{  		char list[80] = "";  		user_t *u = irc->users; @@ -1006,7 +1006,7 @@ int bim_set_away( struct gaim_connection *gc, char *away )  		if( s )  		{  			gc->acc->prpl->set_away( gc, s, away ); -			if( set_getint( &gc->irc->set, "debug" ) ) +			if( set_getbool( &gc->irc->set, "debug" ) )  				serv_got_crap( gc, "Setting away state to %s", s );  		}  		else diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index d30ebbe8..b8cf521b 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -1251,10 +1251,6 @@ static int gaim_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...) {  	channel = va_arg(ap, int);  	userinfo = va_arg(ap, aim_userinfo_t *); -    if (set_getint(sess->aux_data, "debug")) { -        serv_got_crap(sess->aux_data, "channel %i called", channel); -    } -  	switch (channel) {  		case 1: { /* standard message */  			struct aim_incomingim_ch1_args *args; diff --git a/protocols/oscar/rxhandlers.c b/protocols/oscar/rxhandlers.c index be8aba44..7014e693 100644 --- a/protocols/oscar/rxhandlers.c +++ b/protocols/oscar/rxhandlers.c @@ -112,10 +112,6 @@ static int consumesnac(aim_session_t *sess, aim_frame_t *rx)  		/* Following SNAC will be related */  	} -    if (set_getint(sess->aux_data, "debug")) { -        serv_got_crap(sess->aux_data, "snac %x/%x received", snac.family, snac.subtype); -    } -  	for (cur = (aim_module_t *)sess->modlistv; cur; cur = cur->next) {  		if (!(cur->flags & AIM_MODFLAG_MULTIFAMILY) &&  diff --git a/root_commands.c b/root_commands.c index 389266eb..13567e8a 100644 --- a/root_commands.c +++ b/root_commands.c @@ -143,7 +143,7 @@ static void cmd_identify( irc_t *irc, char **cmd )  	case STORAGE_OK:  		irc_usermsg( irc, "Password accepted, settings and accounts loaded" );  		irc_umode_set( irc, "+R", 1 ); -		if( set_getint( &irc->set, "auto_connect" ) ) +		if( set_getbool( &irc->set, "auto_connect" ) )  			cmd_account( irc, account_on );  		break;  	case STORAGE_OTHER_ERROR: @@ -23,15 +23,30 @@    Suite 330, Boston, MA  02111-1307  USA  */ +/* This used to be specific to irc_t structures, but it's more generic now +   (so it can also be used for account_t structs). It's pretty simple, but +   so far pretty useful. +    +   In short, it just keeps a linked list of settings/variables and it also +   remembers a default value for every setting. And to prevent the user +   from setting invalid values, you can write an evaluator function for +   every setting, which can check a new value and block it by returning +   NULL, or replace it by returning a new value. See struct set.eval. */ +  typedef struct set  { -	void *data; +	void *data;     /* Here you can save a pointer to the +	                   object this settings belongs to. */  	char *key;  	char *value; -	char *def;	/* Default */ +	char *def;      /* Default value. If the set_setstr() function +	                   notices a new value is exactly the same as +	                   the default, value gets set to NULL. So when +	                   you read a setting, don't forget about this! */ -	int flags; +	int flags;      /* See account.h, for example. set.c doesn't use +	                   this (yet?). */  	/* Eval: Returns NULL if the value is incorrect or exactly the  	   passed value variable. When returning a corrected value, @@ -40,18 +55,33 @@ typedef struct set  	struct set *next;  } set_t; +/* Should be pretty clear. */  set_t *set_add( set_t **head, char *key, char *def, void *eval, void *data ); + +/* Returns the raw set_t. Might be useful sometimes. */  set_t *set_find( set_t **head, char *key ); + +/* Returns a pointer to the string value of this setting. Don't modify the +   returned string, and don't free() it! */  G_MODULE_EXPORT char *set_getstr( set_t **head, char *key ); + +/* Get an integer. Right now this also converts true/false/on/off/etc to +   numbers, but this is for historical reasons, please use set_getbool() +   for booleans instead. */  G_MODULE_EXPORT int set_getint( set_t **head, char *key );  G_MODULE_EXPORT int set_getbool( set_t **head, char *key ); + +/* set_setstr() strdup()s the given value, so after using this function +   you can free() it, if you want. */  int set_setstr( set_t **head, char *key, char *value );  int set_setint( set_t **head, char *key, int value );  void set_del( set_t **head, char *key ); +/* Two very useful generic evaluators. */  char *set_eval_int( set_t *set, char *value );  char *set_eval_bool( set_t *set, char *value ); +/* Some not very generic evaluators that really shouldn't be here... */  char *set_eval_to_char( set_t *set, char *value );  char *set_eval_ops( set_t *set, char *value );  char *set_eval_charset( set_t *set, char *value ); @@ -66,7 +66,7 @@ user_t *user_add( irc_t *irc, char *nick )  	}  	u->user = u->realname = u->host = u->nick = g_strdup( nick ); -	u->is_private = set_getint( &irc->set, "private" ); +	u->is_private = set_getbool( &irc->set, "private" );  	key = g_strdup( nick );  	nick_lc( key ); | 
