Mercurial > pidgin
comparison libpurple/protocols/qq/buddy_list.c @ 25807:e35115192593
Finished struct hiding in bonjour and qq
author | Gary Kramlich <grim@reaperworld.com> |
---|---|
date | Sun, 02 Nov 2008 10:21:19 +0000 |
parents | d35672443baa |
children | 65cfc59858cf |
comparison
equal
deleted
inserted
replaced
25806:b48f6d0ecdf7 | 25807:e35115192593 |
---|---|
324 purple_debug_info("QQ", "buddy [%09d]: ext_flag=0x%02x, comm_flag=0x%02x, nick=%s\n", | 324 purple_debug_info("QQ", "buddy [%09d]: ext_flag=0x%02x, comm_flag=0x%02x, nick=%s\n", |
325 bd.uid, bd.ext_flag, bd.comm_flag, bd.nickname); | 325 bd.uid, bd.ext_flag, bd.comm_flag, bd.nickname); |
326 #endif | 326 #endif |
327 | 327 |
328 buddy = qq_buddy_find_or_new(gc, bd.uid); | 328 buddy = qq_buddy_find_or_new(gc, bd.uid); |
329 if (buddy == NULL || buddy->proto_data == NULL) { | 329 if (buddy == NULL || purple_buddy_get_protocol_data(buddy) == NULL) { |
330 g_free(bd.nickname); | 330 g_free(bd.nickname); |
331 continue; | 331 continue; |
332 } | 332 } |
333 purple_blist_server_alias_buddy(buddy, bd.nickname); | 333 purple_blist_server_alias_buddy(buddy, bd.nickname); |
334 bd.last_update = time(NULL); | 334 bd.last_update = time(NULL); |
335 qq_update_buddy_status(gc, bd.uid, bd.status, bd.comm_flag); | 335 qq_update_buddy_status(gc, bd.uid, bd.status, bd.comm_flag); |
336 | 336 |
337 g_memmove(buddy->proto_data, &bd, sizeof(qq_buddy_data)); | 337 g_memmove(purple_buddy_get_protocol_data(buddy), &bd, sizeof(qq_buddy_data)); |
338 /* nickname has been copy to buddy_data do not free | 338 /* nickname has been copy to buddy_data do not free |
339 g_free(bd.nickname); | 339 g_free(bd.nickname); |
340 */ | 340 */ |
341 } | 341 } |
342 | 342 |
639 | 639 |
640 buddies = purple_find_buddies(purple_connection_get_account(gc), NULL); | 640 buddies = purple_find_buddies(purple_connection_get_account(gc), NULL); |
641 for (it = buddies; it; it = it->next) { | 641 for (it = buddies; it; it = it->next) { |
642 buddy = it->data; | 642 buddy = it->data; |
643 if (buddy == NULL) continue; | 643 if (buddy == NULL) continue; |
644 if (buddy->proto_data == NULL) continue; | 644 |
645 | 645 bd = purple_buddy_get_protocol_data(buddy); |
646 bd = (qq_buddy_data *)buddy->proto_data; | 646 if (bd == NULL) continue; |
647 | |
647 if (bd->uid == 0) continue; | 648 if (bd->uid == 0) continue; |
648 if (bd->uid == qd->uid) continue; /* my status is always online in my buddy list */ | 649 if (bd->uid == qd->uid) continue; /* my status is always online in my buddy list */ |
649 if (tm_limit < bd->last_update) continue; | 650 if (tm_limit < bd->last_update) continue; |
650 if (bd->status == QQ_BUDDY_ONLINE_INVISIBLE) continue; | 651 if (bd->status == QQ_BUDDY_ONLINE_INVISIBLE) continue; |
651 if (bd->status == QQ_BUDDY_CHANGE_TO_OFFLINE) continue; | 652 if (bd->status == QQ_BUDDY_CHANGE_TO_OFFLINE) continue; |
661 qq_data *qd; | 662 qq_data *qd; |
662 PurpleBuddy *buddy; | 663 PurpleBuddy *buddy; |
663 GSList *buddies, *it; | 664 GSList *buddies, *it; |
664 gint count = 0; | 665 gint count = 0; |
665 | 666 |
666 qd = (qq_data *) (gc->proto_data); | 667 qd = (qq_data *)purple_connection_get_protocol_data(gc); |
667 | 668 |
668 buddies = purple_find_buddies(purple_connection_get_account(gc), NULL); | 669 buddies = purple_find_buddies(purple_connection_get_account(gc), NULL); |
669 for (it = buddies; it; it = it->next) { | 670 for (it = buddies; it; it = it->next) { |
671 qq_buddy_data *qbd = NULL; | |
672 | |
670 buddy = it->data; | 673 buddy = it->data; |
671 if (buddy == NULL) continue; | 674 if (buddy == NULL) continue; |
672 if (buddy->proto_data == NULL) continue; | 675 |
673 | 676 qbd = purple_buddy_get_protocol_data(buddy); |
674 qq_buddy_data_free(buddy->proto_data); | 677 if (qbd == NULL) continue; |
675 buddy->proto_data = NULL; | 678 |
679 qq_buddy_data_free(qbd); | |
680 purple_buddy_set_protocol_data(buddy, NULL); | |
676 | 681 |
677 count++; | 682 count++; |
678 } | 683 } |
679 | 684 |
680 if (count > 0) { | 685 if (count > 0) { |