Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • account.c

    r823de9d r286b28e  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2004 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2010 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    2727#include "bitlbee.h"
    2828#include "account.h"
     29#include "chat.h"
    2930
    3031account_t *account_add( irc_t *irc, struct prpl *prpl, char *user, char *pass )
     
    5455        s = set_add( &a->set, "auto_reconnect", "true", set_eval_bool, a );
    5556       
     57        s = set_add( &a->set, "nick_source", "handle", NULL, a );
     58       
    5659        s = set_add( &a->set, "password", NULL, set_eval_account, a );
    5760        s->flags |= ACC_SET_NOSAVE | SET_NULL_OK;
     
    6871                prpl->init( a );
    6972       
    70         return( a );
     73        s = set_add( &a->set, "away", NULL, set_eval_account, a );
     74        s->flags |= SET_NULL_OK;
     75       
     76        if( a->flags & ACC_FLAG_STATUS_MESSAGE )
     77        {
     78                s = set_add( &a->set, "status", NULL, set_eval_account, a );
     79                s->flags |= SET_NULL_OK;
     80        }
     81       
     82        return a;
    7183}
    7284
     
    120132               
    121133                acc->auto_connect = bool2int( value );
     134                return value;
     135        }
     136        else if( strcmp( set->key, "away" ) == 0 ||
     137                 strcmp( set->key, "status" ) == 0 )
     138        {
     139                if( acc->ic && acc->ic->flags & OPT_LOGGED_IN )
     140                {
     141                        /* If we're currently on-line, set the var now already
     142                           (bit of a hack) and send an update. */
     143                        g_free( set->value );
     144                        set->value = g_strdup( value );
     145                       
     146                        imc_away_send_update( acc->ic );
     147                }
     148               
    122149                return value;
    123150        }
     
    190217{
    191218        account_t *a, *l = NULL;
     219        struct chat *c, *nc;
    192220       
    193221        if( acc->ic )
     
    202230                        else
    203231                                irc->accounts = a->next;
     232                       
     233                        for( c = irc->chatrooms; c; c = nc )
     234                        {
     235                                nc = c->next;
     236                                if( acc == c->acc )
     237                                        chat_del( irc, c );
     238                        }
    204239                       
    205240                        while( a->set )
     
    258293        p->max = 86400;
    259294       
    260         /* Format: /[0-9]+([*+][0-9]+(<[0-9+]))/ */
     295        /* Format: /[0-9]+([*+][0-9]+(<[0-9+])?)?/ */
    261296        while( *value && isdigit( *value ) )
    262297                p->start = p->start * 10 + *value++ - '0';
Note: See TracChangeset for help on using the changeset viewer.