Changeset 2fe5eb9


Ignore:
Timestamp:
2010-07-29T17:08:16Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
f7ca587
Parents:
b40e60d
Message:

Clean up references from irc_user structs to channels that are being free()d.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • irc.h

    rb40e60d r2fe5eb9  
    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
     
    108108        char *fullname;
    109109       
    110         /* Nickname in lowercase for case sensitive searches */
     110        /* Nickname in lowercase for case insensitive searches */
    111111        char *key;
    112112       
  • irc_channel.c

    rb40e60d r2fe5eb9  
    117117{
    118118        irc_t *irc = ic->irc;
     119        GSList *l;
    119120       
    120121        if( ic->flags & IRC_CHANNEL_JOINED )
     
    132133                g_free( ic->users->data );
    133134                ic->users = g_slist_remove( ic->users, ic->users->data );
     135        }
     136       
     137        for( l = irc->users; l; l = l->next )
     138        {
     139                irc_user_t *iu = l->data;
     140               
     141                if( iu->last_channel == ic )
     142                        iu->last_channel = irc->default_channel;
    134143        }
    135144       
  • irc_im.c

    rb40e60d r2fe5eb9  
    210210        char *dst, *prefix = NULL;
    211211        char *wrapped, *ts = NULL;
     212        irc_channel_t *ic = NULL;
    212213       
    213214        if( sent_at > 0 && set_getbool( &irc->b->set, "display_timestamps" ) )
     
    216217        if( iu->last_channel )
    217218        {
    218                 dst = iu->last_channel->name;
     219                if( iu->last_channel->flags & IRC_CHANNEL_JOINED )
     220                        ic = iu->last_channel;
     221                else if( irc->default_channel->flags & IRC_CHANNEL_JOINED )
     222                        ic = irc->default_channel;
     223        }
     224       
     225        if( ic )
     226        {
     227                dst = ic->name;
    219228                prefix = g_strdup_printf( "%s%s%s", irc->user->nick, set_getstr( &bee->set, "to_char" ), ts ? : "" );
    220229        }
Note: See TracChangeset for help on using the changeset viewer.