Changeset b1af3e8


Ignore:
Timestamp:
2010-07-13T22:50:06Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
324c378
Parents:
06b39f2
Message:

Fixed cleaning up of channels. Something broke when changing the
irc_channel_del_user() syntax.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • irc_commands.c

    r06b39f2 rb1af3e8  
    202202                irc_send_num( irc, 403, "%s :No such channel", cmd[1] );
    203203        }
    204         else if( irc_channel_del_user( ic, irc->user, FALSE, cmd[2] ) )
     204        else if( irc_channel_del_user( ic, irc->user, IRC_CDU_PART, cmd[2] ) )
    205205        {
    206206                if( ic->f->part )
  • irc_im.c

    r06b39f2 rb1af3e8  
    451451        irc_channel_t *ic = c->ui_data;
    452452       
     453        if( ic == NULL )
     454                return FALSE;
     455       
    453456        if( ic->flags & IRC_CHANNEL_JOINED )
    454457                irc_channel_printf( ic, "Cleaning up channel, bye!" );
     
    463466{
    464467        irc_channel_t *ic = c->ui_data;
     468       
     469        if( ic == NULL )
     470                return FALSE;
    465471       
    466472        irc_channel_printf( ic, "%s", text );
     
    476482        char *ts = NULL;
    477483       
     484        if( ic == NULL )
     485                return FALSE;
     486       
    478487        if( sent_at > 0 && set_getbool( &bee->set, "display_timestamps" ) )
    479488                ts = irc_format_timestamp( irc, sent_at );
     
    488497{
    489498        irc_t *irc = bee->ui_data;
    490        
    491         irc_channel_add_user( c->ui_data, bu == bee->user ? irc->user : bu->ui_data );
     499        irc_channel_t *ic = c->ui_data;
     500       
     501        if( ic == NULL )
     502                return FALSE;
     503       
     504        irc_channel_add_user( ic, bu == bee->user ? irc->user : bu->ui_data );
    492505       
    493506        return TRUE;
     
    497510{
    498511        irc_t *irc = bee->ui_data;
     512        irc_channel_t *ic = c->ui_data;
     513       
     514        if( ic == NULL )
     515                return FALSE;
    499516       
    500517        /* TODO: Possible bug here: If a module removes $user here instead of just
    501518           using imcb_chat_free() and the channel was IRC_CHANNEL_TEMP, we get into
    502519           a broken state around here. */
    503         irc_channel_del_user( c->ui_data, bu == bee->user ? irc->user : bu->ui_data, IRC_CDU_PART, NULL );
     520        irc_channel_del_user( ic, bu == bee->user ? irc->user : bu->ui_data, IRC_CDU_PART, NULL );
    504521       
    505522        return TRUE;
     
    508525static gboolean bee_irc_chat_topic( bee_t *bee, struct groupchat *c, const char *new, bee_user_t *bu )
    509526{
     527        irc_channel_t *ic = c->ui_data;
    510528        irc_t *irc = bee->ui_data;
    511529        irc_user_t *iu;
     530       
     531        if( ic == NULL )
     532                return FALSE;
    512533       
    513534        if( bu == NULL )
     
    518539                iu = bu->ui_data;
    519540       
    520         irc_channel_set_topic( c->ui_data, new, iu );
     541        irc_channel_set_topic( ic, new, iu );
    521542       
    522543        return TRUE;
     
    528549        irc_channel_t *ic = c->ui_data, *oic;
    529550        char stripped[MAX_NICK_LENGTH+1], *full_name;
     551       
     552        if( ic == NULL )
     553                return FALSE;
    530554       
    531555        /* Don't rename a channel if the user's in it already. */
     
    786810static gboolean bee_irc_channel_free( irc_channel_t *ic )
    787811{
     812        struct groupchat *c = ic->data;
     813       
    788814        set_del( &ic->set, "account" );
    789815        set_del( &ic->set, "chat_type" );
     
    793819       
    794820        ic->flags &= ~IRC_CHANNEL_TEMP;
     821       
     822        /* That one still points at this channel. Don't. */
     823        if( c )
     824                c->ui_data = NULL;
    795825       
    796826        return TRUE;
Note: See TracChangeset for help on using the changeset viewer.