From: Gary K. <amc...@us...> - 2005-01-13 15:51:25
|
Update of /cvsroot/gaim-bnet/gaim-bnet/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23736/src Modified Files: buddy.c buddy.h proto.c Log Message: updates from dario Index: proto.c =================================================================== RCS file: /cvsroot/gaim-bnet/gaim-bnet/src/proto.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** proto.c 13 Jan 2005 11:29:31 -0000 1.13 --- proto.c 13 Jan 2005 15:50:54 -0000 1.14 *************** *** 52,55 **** --- 52,56 ---- if (buddy->fl_position == -1) { bnet_conn_send(conn, "/friends add %s\n", buddy->name); + bnet_conn_send(conn, "/where %s\n", buddy->name); buddy->fl_position = 0; } *************** *** 201,207 **** chan = w->data; ! b = g_hash_table_lookup(conn->buddies, nick); ! if (!b) ! b = bnet_buddy_add_default(conn, nick); sscanf(n, "%u", &b->fl_position); --- 202,207 ---- chan = w->data; ! b = bnet_buddy_hard_lookup(conn, nick); ! g_return_if_fail(b); sscanf(n, "%u", &b->fl_position); *************** *** 225,231 **** nick = w->data; ! b = g_hash_table_lookup(conn->buddies, nick); ! if (!b) ! b = bnet_buddy_add_default(conn, nick); sscanf(n, "%u", &b->fl_position); --- 225,230 ---- nick = w->data; ! b = bnet_buddy_hard_lookup(conn, nick); ! g_return_if_fail(b); sscanf(n, "%u", &b->fl_position); *************** *** 252,256 **** * We can assume it as a confirmation that user is online */ - gc = gaim_account_get_connection(conn->account); serv_got_update(gc, nick, TRUE, 0, 0, 0, 0); --- 251,254 ---- *************** *** 279,286 **** * the server one. */ - g_hash_table_foreach(conn->buddies, bnet_hash_check_buddy, conn); ! conn->fl_listing = FALSE; } --- 277,283 ---- * the server one. */ g_hash_table_foreach(conn->buddies, bnet_hash_check_buddy, conn); ! conn->fl_listing = FALSE; } *************** *** 288,292 **** --- 285,291 ---- { "Welcome to Battle.net!", bnet_proto_info_welcome }, { "$x: $x, (mutual) using $x in the channel $x.", bnet_proto_info_fl_online }, + { "$x: $x, using $x in the channel $x.", bnet_proto_info_fl_online }, { "$x: $x, (mutual) using $x in the game $x.", bnet_proto_info_fl_online }, + { "$x: $x, using $x in the game $x.", bnet_proto_info_fl_online }, { "$x: $x, offline", bnet_proto_info_fl_offline }, { "$x is using $x in the channel $x.", bnet_proto_info_where }, *************** *** 303,308 **** BNetUser *u; GaimConversation *convo; ! u = BNET_USER(g_hash_table_lookup(conn->users, nick)); if (!u) { /* We can assume strlen(game) always > 2 because its format is --- 302,310 ---- BNetUser *u; GaimConversation *convo; + const gchar *norm; ! norm = gaim_normalize(conn->account, nick); ! ! u = BNET_USER(g_hash_table_lookup(conn->users, norm)); if (!u) { /* We can assume strlen(game) always > 2 because its format is *************** *** 311,316 **** gchar *game_snip = g_strdup(game); game_snip[strlen(game)-1] = 0; ! u = bnet_user_new(nick, game_snip+1, flags); ! g_hash_table_insert(conn->users, u->nick, u); g_free(game_snip); } --- 313,318 ---- gchar *game_snip = g_strdup(game); game_snip[strlen(game)-1] = 0; ! u = bnet_user_new(norm, nick, game_snip+1, flags); ! g_hash_table_insert(conn->users, u->norm, u); g_free(game_snip); } *************** *** 341,346 **** //const gchar* flags = args[2]; GaimConversation *convo; ! ! g_hash_table_remove(conn->users, nick); convo = gaim_find_conversation_with_account(conn->chan, conn->account); --- 343,350 ---- //const gchar* flags = args[2]; GaimConversation *convo; ! const gchar *norm; ! ! norm = gaim_normalize(conn->account, nick); ! g_hash_table_remove(conn->users, norm); convo = gaim_find_conversation_with_account(conn->chan, conn->account); *************** *** 566,570 **** if (pi->id == id) { if (pi->args_n+2 != args_n) { ! gaim_debug_info("bnet", "bnet_proto_process_msg: wrong args number\n"); } else { --- 570,585 ---- if (pi->id == id) { if (pi->args_n+2 != args_n) { ! gaim_debug_info("bnet", ! "bnet_proto_process_msg: id(%d) wrong args number\n", ! id); ! gaim_debug_info("bnet", ! "bnet_proto_process_msg: full message \"%s\"\n", ! msg); ! ! for (i = 0; i < args_n; i++) { ! gaim_debug_info("bnet", ! "bnet_proto_process_msg: arg(%d) \"%s\"\n", ! i, args[i]); ! } } else { Index: buddy.h =================================================================== RCS file: /cvsroot/gaim-bnet/gaim-bnet/src/buddy.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** buddy.h 13 Jan 2005 08:25:39 -0000 1.7 --- buddy.h 13 Jan 2005 15:50:54 -0000 1.8 *************** *** 32,35 **** --- 32,36 ---- struct _BNetUser { + gchar* norm; gchar* nick; gchar* game; *************** *** 38,41 **** --- 39,43 ---- struct _BNetBuddy { + gchar* norm; gchar* name; gchar* flags; *************** *** 49,53 **** /* User API */ ! BNetUser *bnet_user_new(const gchar *nick, const gchar *game, const gchar *flags); void bnet_user_free(BNetUser *user); void bnet_user_info(GaimConnection *gc, const gchar *who); --- 51,56 ---- /* User API */ ! BNetUser *bnet_user_new(const gchar *norm, const gchar *nick, ! const gchar *game, const gchar *flags); void bnet_user_free(BNetUser *user); void bnet_user_info(GaimConnection *gc, const gchar *who); *************** *** 57,64 **** /* Buddy API */ ! BNetBuddy *bnet_buddy_new(const gchar *name); void bnet_buddy_free(BNetBuddy *buddy); void bnet_buddy_add(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); ! BNetBuddy *bnet_buddy_add_default(BNetConn *conn, const gchar *name); void bnet_buddy_remove(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); void bnet_buddy_emblems(GaimBuddy *buddy, char **se, char **sw, char **nw, char **ne); --- 60,67 ---- /* Buddy API */ ! BNetBuddy *bnet_buddy_new(const gchar *norm, const gchar *name); void bnet_buddy_free(BNetBuddy *buddy); void bnet_buddy_add(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); ! BNetBuddy *bnet_buddy_hard_lookup(BNetConn *conn, const gchar *name); void bnet_buddy_remove(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); void bnet_buddy_emblems(GaimBuddy *buddy, char **se, char **sw, char **nw, char **ne); Index: buddy.c =================================================================== RCS file: /cvsroot/gaim-bnet/gaim-bnet/src/buddy.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** buddy.c 13 Jan 2005 08:25:39 -0000 1.9 --- buddy.c 13 Jan 2005 15:50:54 -0000 1.10 *************** *** 45,51 **** *****************************************************************************/ BNetUser * ! bnet_user_new(const gchar *nick, const gchar *game, const gchar *flags) { BNetUser *user; g_return_val_if_fail(nick, NULL); --- 45,53 ---- *****************************************************************************/ BNetUser * ! bnet_user_new(const gchar *norm, const gchar *nick, ! const gchar *game, const gchar *flags) { BNetUser *user; + g_return_val_if_fail(norm, NULL); g_return_val_if_fail(nick, NULL); *************** *** 53,56 **** --- 55,59 ---- g_return_val_if_fail(user, NULL); + user->norm = g_strdup(norm); user->nick = g_strdup(nick); *************** *** 68,77 **** g_return_if_fail(user); g_free(user->nick); g_free(user->game); g_free(user->flags); g_free(user); - - user = NULL; } --- 71,79 ---- g_return_if_fail(user); + g_free(user->norm); g_free(user->nick); g_free(user->game); g_free(user->flags); g_free(user); } *************** *** 102,108 **** *****************************************************************************/ BNetBuddy * ! bnet_buddy_new(const gchar *name) { BNetBuddy *buddy; g_return_val_if_fail(name, NULL); --- 104,111 ---- *****************************************************************************/ BNetBuddy * ! bnet_buddy_new(const gchar *norm, const gchar *name) { BNetBuddy *buddy; + g_return_val_if_fail(norm, NULL); g_return_val_if_fail(name, NULL); *************** *** 110,113 **** --- 113,117 ---- g_return_val_if_fail(buddy, NULL); + buddy->norm = g_strdup(norm); buddy->name = g_strdup(name); buddy->flags = 0; *************** *** 122,131 **** g_return_if_fail(buddy); g_free(buddy->name); g_free(buddy->flags); g_free(buddy->location); g_free(buddy); - - buddy = NULL; } --- 126,134 ---- g_return_if_fail(buddy); + g_free(buddy->norm); g_free(buddy->name); g_free(buddy->flags); g_free(buddy->location); g_free(buddy); } *************** *** 133,154 **** bnet_buddy_add(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { BNetConn *conn = BNET_CONN(gc->proto_data); ! BNetBuddy *b = bnet_buddy_new(buddy->name); ! const gchar *name; gaim_debug_info("bnet", "bnet_buddy_add\n"); ! name = gaim_normalize(gc->account, buddy->name); ! if(!g_hash_table_lookup(conn->buddies, name)) ! g_hash_table_insert(conn->buddies, (gchar *)name, b); ! bnet_conn_request_friends_list(conn); } BNetBuddy * ! bnet_buddy_add_default(BNetConn *conn, const gchar *name) { GaimBuddy *buddy; GaimGroup *group; ! BNetBuddy *b; gaim_debug_info("bnet", "bnet_buddy_add_default\n"); --- 136,160 ---- bnet_buddy_add(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { BNetConn *conn = BNET_CONN(gc->proto_data); ! BNetBuddy *b; ! const gchar *norm; gaim_debug_info("bnet", "bnet_buddy_add\n"); ! norm = gaim_normalize(gc->account, buddy->name); ! if (!g_hash_table_lookup(conn->buddies, norm)) { ! b = bnet_buddy_new(norm, buddy->name); ! g_hash_table_insert(conn->buddies, b->norm, b); ! bnet_conn_request_friends_list(conn); ! } } BNetBuddy * ! bnet_buddy_hard_lookup(BNetConn *conn, const gchar *name) { GaimBuddy *buddy; GaimGroup *group; ! BNetBuddy *b = NULL; ! const gchar *norm; gaim_debug_info("bnet", "bnet_buddy_add_default\n"); *************** *** 157,174 **** g_return_val_if_fail(name, NULL); ! buddy = gaim_buddy_new(conn->account, name, NULL); ! group = gaim_find_group(BNET_DEFAULT_GROUP_NAME); ! if (!group) { ! group = gaim_group_new(BNET_DEFAULT_GROUP_NAME); ! gaim_blist_add_group(group, NULL); ! } ! gaim_blist_add_buddy(buddy, NULL, group, NULL); ! /* We must add it also to our buddy list... */ ! b = bnet_buddy_new(name); ! g_hash_table_insert(conn->buddies, b->name, b); return b; --- 163,182 ---- g_return_val_if_fail(name, NULL); ! norm = gaim_normalize(conn->account, name); ! if (!(b = g_hash_table_lookup(conn->buddies, norm))) { ! buddy = gaim_buddy_new(conn->account, name, NULL); ! group = gaim_find_group(BNET_DEFAULT_GROUP_NAME); ! if (!group) { ! group = gaim_group_new(BNET_DEFAULT_GROUP_NAME); ! gaim_blist_add_group(group, NULL); ! } ! gaim_blist_add_buddy(buddy, NULL, group, NULL); ! b = bnet_buddy_new(norm, name); ! g_hash_table_insert(conn->buddies, b->norm, b); ! } return b; |