From d995c9b5de1bff5e3eb5de47b7ffbd3e92e2ac3d Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 31 Aug 2008 15:54:39 +0100 Subject: Added cleanup code. --- chat.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'chat.c') diff --git a/chat.c b/chat.c index 234c1a23..a4c1cce9 100644 --- a/chat.c +++ b/chat.c @@ -125,6 +125,31 @@ struct chat *chat_get( irc_t *irc, char *id ) return ret; } +int chat_del( irc_t *irc, struct chat *chat ) +{ + struct chat *c, *l = NULL; + + for( c = irc->chatrooms; c; c = (l=c)->next ) + if( c == chat ) + break; + + if( c == NULL ) + return 0; + else if( l == NULL ) + irc->chatrooms = c->next; + else + l->next = c->next; + + while( c->set ) + set_del( &c->set, c->set->key ); + + g_free( c->handle ); + g_free( c->channel ); + g_free( c ); + + return 1; +} + int chat_chancmp( char *a, char *b ) { if( !chat_chanok( a ) || !chat_chanok( b ) ) -- cgit v1.2.3