libpurple/protocols/msn/userlist.c

changeset 27199
ab2af9d15cba
parent 27101
754a5afb2df7
child 27299
aee35fe64295
equal deleted inserted replaced
27198:da6e03d6f9d6 27199:ab2af9d15cba
781 781
782 /*load userlist from the Blist file cache*/ 782 /*load userlist from the Blist file cache*/
783 void 783 void
784 msn_userlist_load(MsnSession *session) 784 msn_userlist_load(MsnSession *session)
785 { 785 {
786 PurpleBlistNode *gnode, *cnode, *bnode;
787 PurpleAccount *account = session->account; 786 PurpleAccount *account = session->account;
788 PurpleConnection *gc = purple_account_get_connection(account); 787 PurpleConnection *gc = purple_account_get_connection(account);
789 GSList *l; 788 GSList *l;
790 MsnUser * user; 789 MsnUser * user;
791 790
792 g_return_if_fail(gc != NULL); 791 g_return_if_fail(gc != NULL);
793 792
794 for (gnode = purple_blist_get_root(); gnode; 793 for (l = purple_find_buddies(account, NULL); l != NULL;
795 gnode = purple_blist_node_get_sibling_next(gnode)) 794 l = g_slist_delete_link(l, l)) {
796 { 795 PurpleBuddy *buddy = l->data;
797 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) 796
798 continue; 797 user = msn_userlist_find_add_user(session->userlist,
799 for (cnode = purple_blist_node_get_first_child(gnode); 798 purple_buddy_get_name(buddy), NULL);
800 cnode; 799 purple_buddy_set_protocol_data(buddy, user);
801 cnode = purple_blist_node_get_sibling_next(cnode)) 800 msn_user_set_op(user, MSN_LIST_FL_OP);
802 {
803 if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
804 continue;
805 for (bnode = purple_blist_node_get_first_child(cnode);
806 bnode;
807 bnode = purple_blist_node_get_sibling_next(bnode))
808 {
809 PurpleBuddy *b;
810 if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
811 continue;
812 b = (PurpleBuddy *)bnode;
813 if (purple_buddy_get_account(b) == account)
814 {
815 user = msn_userlist_find_add_user(session->userlist,
816 purple_buddy_get_name(b), NULL);
817 purple_buddy_set_protocol_data(b, user);
818 msn_user_set_op(user, MSN_LIST_FL_OP);
819 }
820 }
821 }
822 } 801 }
823 for (l = session->account->permit; l != NULL; l = l->next) 802 for (l = session->account->permit; l != NULL; l = l->next)
824 { 803 {
825 user = msn_userlist_find_add_user(session->userlist, 804 user = msn_userlist_find_add_user(session->userlist,
826 (char *)l->data,NULL); 805 (char *)l->data,NULL);

mercurial