Changeset 823de9d for set.c


Ignore:
Timestamp:
2009-03-12T19:10:06Z (16 years ago)
Author:
Sven Moritz Hallberg <pesco@…>
Branches:
master
Children:
673a54c
Parents:
9b55485
Message:

commit updates by ashish shukla <wahjava@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • set.c

    r9b55485 r823de9d  
    2626#include "bitlbee.h"
    2727
     28/* Used to use NULL for this, but NULL is actually a "valid" value. */
     29char *SET_INVALID = "nee";
     30
    2831set_t *set_add( set_t **head, char *key, char *def, set_eval eval, void *data )
    2932{
     
    114117       
    115118        if( !s )
     119                /*
     120                Used to do this, but it never really made sense.
    116121                s = set_add( head, key, NULL, NULL, NULL );
    117        
    118         if( s->eval && !( nv = s->eval( s, value ) ) )
     122                */
     123                return 0;
     124       
     125        if( value == NULL && ( s->flags & SET_NULL_OK ) == 0 )
     126                return 0;
     127       
     128        /* Call the evaluator. For invalid values, evaluators should now
     129           return SET_INVALID, but previously this was NULL. Try to handle
     130           that too if NULL is not an allowed value for this setting. */
     131        if( s->eval && ( ( nv = s->eval( s, value ) ) == SET_INVALID ||
     132                         ( ( s->flags & SET_NULL_OK ) == 0 && nv == NULL ) ) )
    119133                return 0;
    120134       
     
    168182}
    169183
    170 void set_reset( set_t **head, char *key )
     184int set_reset( set_t **head, char *key )
    171185{
    172186        set_t *s;
     
    174188        s = set_find( head, key );
    175189        if( s )
    176                 set_setstr( head, key, s->def );
     190                return set_setstr( head, key, s->def );
     191       
     192        return 0;
    177193}
    178194
     
    187203        for( ; *s; s ++ )
    188204                if( !isdigit( *s ) )
    189                         return NULL;
     205                        return SET_INVALID;
    190206       
    191207        return value;
     
    194210char *set_eval_bool( set_t *set, char *value )
    195211{
    196         return is_bool( value ) ? value : NULL;
     212        return is_bool( value ) ? value : SET_INVALID;
    197213}
    198214
     
    209225}
    210226
    211 char *set_eval_op_root( set_t *set, char *value )
     227char* set_eval_op_root( set_t *set, char* value )
    212228{
    213229        irc_t *irc = set->data;
    214         char *ret = set_eval_bool(set, value);
     230        char* ret = set_eval_bool(set, value);
    215231        int b = bool2int(ret);
    216        
     232
    217233        irc_write( irc, ":%s!%s@%s MODE %s %s %s", irc->mynick, irc->mynick, irc->myhost,
    218                                                    irc->channel, b?"+o":"-o", irc->mynick );
     234                                               irc->channel, b?"+o":"-o", irc->mynick);
     235
    219236        return ret;
    220237}
    221238
    222 char *set_eval_op_user( set_t *set, char *value )
     239char* set_eval_op_user( set_t *set, char* value )
    223240{
    224241        irc_t *irc = set->data;
    225         char *ret = set_eval_bool(set, value);
     242        char* ret = set_eval_bool(set, value);
    226243        int b = bool2int(ret);
    227        
     244
    228245        irc_write( irc, ":%s!%s@%s MODE %s %s %s", irc->mynick, irc->mynick, irc->myhost,
    229                                                    irc->channel, b?"+o":"-o", irc->nick );
     246                                               irc->channel, b?"+o":"-o", irc->nick);
     247
    230248        return ret;
    231249}
     
    250268        else
    251269                return NULL;
    252        
     270
    253271        /* sorry for calling them op/deop - too lazy for search+replace :P */
    254272        op[0]='\0';
     
    335353                char *flags = g_strnfill(ndeop, modeflag);
    336354                irc_write( irc, ":%s!%s@%s MODE %s -%s%s", irc->mynick, irc->mynick, irc->myhost,
    337                                                        irc->channel, flags, deop );
    338                 g_free(flags);
    339         }
    340        
     355                                                   irc->channel, flags, deop );
     356        g_free(flags);
     357    }
     358
    341359        return value;
    342360}
     
    370388        return NULL;
    371389}
     390
Note: See TracChangeset for help on using the changeset viewer.