| 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); |