From ba9edaa568088900145bbd1004c864b7d408c38d Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Wed, 10 May 2006 19:34:46 +0200 Subject: Moved everything to the BitlBee event handling API. --- user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user.c') diff --git a/user.c b/user.c index b795c864..b2c91ccd 100644 --- a/user.c +++ b/user.c @@ -108,7 +108,7 @@ int user_del( irc_t *irc, char *nick ) if( u->away ) g_free( u->away ); if( u->handle ) g_free( u->handle ); if( u->sendbuf ) g_free( u->sendbuf ); - if( u->sendbuf_timer ) g_source_remove( u->sendbuf_timer ); + if( u->sendbuf_timer ) b_event_remove( u->sendbuf_timer ); g_free( u ); if( !g_hash_table_lookup_extended( irc->userhash, key, &okey, &ovalue ) || ovalue != u ) -- cgit v1.2.3 From 38cc9d4d7a994e4c6b2fc76897591c70e9c14b99 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 25 Jun 2006 18:40:00 +0200 Subject: Fixed a memory leak (u->group). --- user.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'user.c') diff --git a/user.c b/user.c index b412a42d..5f0952f5 100644 --- a/user.c +++ b/user.c @@ -105,9 +105,10 @@ int user_del( irc_t *irc, char *nick ) if( u->nick != u->user ) g_free( u->user ); if( u->nick != u->host ) g_free( u->host ); if( u->nick != u->realname ) g_free( u->realname ); - if( u->away ) g_free( u->away ); - if( u->handle ) g_free( u->handle ); - if( u->sendbuf ) g_free( u->sendbuf ); + g_free( u->group ); + g_free( u->away ); + g_free( u->handle ); + g_free( u->sendbuf ); if( u->sendbuf_timer ) b_event_remove( u->sendbuf_timer ); g_free( u ); -- cgit v1.2.3 From 5c9512ffa716f2bc8bbf9e2c31ee40624a0ff842 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Fri, 30 Jun 2006 11:17:18 +0200 Subject: Made set.c API more generic so it's not specific to irc_t structures anymore, but can be used for account_t structures too, for example. --- user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user.c') diff --git a/user.c b/user.c index 5f0952f5..30228c70 100644 --- a/user.c +++ b/user.c @@ -66,7 +66,7 @@ user_t *user_add( irc_t *irc, char *nick ) } u->user = u->realname = u->host = u->nick = g_strdup( nick ); - u->is_private = set_getint( irc, "private" ); + u->is_private = set_getint( &irc->set, "private" ); key = g_strdup( nick ); nick_lc( key ); -- cgit v1.2.3 From 0a3c243b6659dc10efb227e507f324c2711d6dcd Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sat, 1 Jul 2006 01:18:56 +0200 Subject: Got rid of struct aim_user (now using account_t everywhere). Needs some more testing though. --- user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user.c') diff --git a/user.c b/user.c index 30228c70..cb70ab68 100644 --- a/user.c +++ b/user.c @@ -146,7 +146,7 @@ user_t *user_findhandle( struct gaim_connection *gc, char *handle ) while( u ) { - if( u->gc == gc && u->handle && gc->prpl->cmp_buddynames ( u->handle, handle ) == 0 ) + if( u->gc == gc && u->handle && gc->acc->prpl->cmp_buddynames ( u->handle, handle ) == 0 ) break; u = u->next; } -- cgit v1.2.3 From 5b52a4895e5a59ff6509f7771f4d8665737688c3 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Mon, 3 Jul 2006 23:22:45 +0200 Subject: Implemented per-account nick lists instead of per-protocol nick lists. nick_t is dead, instead nicks are just saves in a per-account_t GLib hash table. While doing this, the import_buddies command finally died and text_save() disappeared, because the old file format can't handle most of the new features in this branch anyway. Still have to implement support for the new nick lists in text_load()! --- user.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'user.c') diff --git a/user.c b/user.c index cb70ab68..0892a23c 100644 --- a/user.c +++ b/user.c @@ -142,16 +142,22 @@ user_t *user_find( irc_t *irc, char *nick ) user_t *user_findhandle( struct gaim_connection *gc, char *handle ) { - user_t *u = gc->irc->users; - - while( u ) - { - if( u->gc == gc && u->handle && gc->acc->prpl->cmp_buddynames ( u->handle, handle ) == 0 ) - break; - u = u->next; - } - - return( u ); + user_t *u; + char *nick; + + /* First, let's try a hash lookup. If it works, it's probably faster. */ + if( ( nick = g_hash_table_lookup( gc->acc->nicks, handle ) ) && + ( u = user_find( gc->irc, nick ) ) && + ( gc->acc->prpl->handle_cmp( handle, u->handle ) == 0 ) ) + return u; + + /* However, it doesn't always work, so in that case we'll have to dig + through the whole userlist. :-( */ + for( u = gc->irc->users; u; u = u->next ) + if( u->gc == gc && u->handle && gc->acc->prpl->handle_cmp( u->handle, handle ) == 0 ) + return u; + + return NULL; } void user_rename( irc_t *irc, char *oldnick, char *newnick ) -- cgit v1.2.3 From d5ccd83c5235528df2481003502647b86b41fdc4 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 13 Aug 2006 21:15:23 +0200 Subject: Extra comments in set.h and now properly using set_getbool() instead of set_getint(). --- user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user.c') diff --git a/user.c b/user.c index 0892a23c..ff65fe66 100644 --- a/user.c +++ b/user.c @@ -66,7 +66,7 @@ user_t *user_add( irc_t *irc, char *nick ) } u->user = u->realname = u->host = u->nick = g_strdup( nick ); - u->is_private = set_getint( &irc->set, "private" ); + u->is_private = set_getbool( &irc->set, "private" ); key = g_strdup( nick ); nick_lc( key ); -- cgit v1.2.3 From 0da65d5fb37691ed4d31f7ab4058732f1440db6b Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Fri, 30 Mar 2007 22:40:45 -0700 Subject: s/gaim_connection/im_connection/ and some other minor API changes. The rest will come tomorrow. It compiles, I'll leave the real testing up to someone else. ;-) --- user.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'user.c') diff --git a/user.c b/user.c index ff65fe66..232e3a58 100644 --- a/user.c +++ b/user.c @@ -140,21 +140,21 @@ user_t *user_find( irc_t *irc, char *nick ) return( NULL ); } -user_t *user_findhandle( struct gaim_connection *gc, char *handle ) +user_t *user_findhandle( struct im_connection *ic, char *handle ) { user_t *u; char *nick; /* First, let's try a hash lookup. If it works, it's probably faster. */ - if( ( nick = g_hash_table_lookup( gc->acc->nicks, handle ) ) && - ( u = user_find( gc->irc, nick ) ) && - ( gc->acc->prpl->handle_cmp( handle, u->handle ) == 0 ) ) + if( ( nick = g_hash_table_lookup( ic->acc->nicks, handle ) ) && + ( u = user_find( ic->irc, nick ) ) && + ( ic->acc->prpl->handle_cmp( handle, u->handle ) == 0 ) ) return u; /* However, it doesn't always work, so in that case we'll have to dig through the whole userlist. :-( */ - for( u = gc->irc->users; u; u = u->next ) - if( u->gc == gc && u->handle && gc->acc->prpl->handle_cmp( u->handle, handle ) == 0 ) + for( u = ic->irc->users; u; u = u->next ) + if( u->ic == ic && u->handle && ic->acc->prpl->handle_cmp( u->handle, handle ) == 0 ) return u; return NULL; -- cgit v1.2.3 From 43d8cc5909aa45aee0b3368e70275469b0f8de22 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Thu, 14 Jun 2007 00:31:18 +0100 Subject: Fixed a memory management problem that caused some strange nickname issues. --- user.c | 1 + 1 file changed, 1 insertion(+) (limited to 'user.c') diff --git a/user.c b/user.c index 232e3a58..26676dd4 100644 --- a/user.c +++ b/user.c @@ -160,6 +160,7 @@ user_t *user_findhandle( struct im_connection *ic, char *handle ) return NULL; } +/* DO NOT PASS u->nick FOR oldnick !!! */ void user_rename( irc_t *irc, char *oldnick, char *newnick ) { user_t *u = user_find( irc, oldnick ); -- cgit v1.2.3