comparison libpurple/account.c @ 25877:1260a3fb60f4

propagate from branch 'im.pidgin.pidgin' (head b8d6086aef6b2e65d86e8ce60220ab7f460d5079) to branch 'im.pidgin.pidgin.next.minor' (head c165595260a2efa0ca23704ada46a303e0412e19)
author Richard Laager <rlaager@wiktel.com>
date Fri, 12 Dec 2008 20:03:58 +0000
parents 98ec72f8f3cc 367b3ddcf5c3
children a6e3cb32cdd2
comparison
equal deleted inserted replaced
24710:d1d9d085d626 25877:1260a3fb60f4
2260 if (prpl_info) { 2260 if (prpl_info) {
2261 GList *cur, *groups = NULL; 2261 GList *cur, *groups = NULL;
2262 2262
2263 /* Make a list of what group each buddy is in */ 2263 /* Make a list of what group each buddy is in */
2264 for (cur = buddies; cur != NULL; cur = cur->next) { 2264 for (cur = buddies; cur != NULL; cur = cur->next) {
2265 PurpleBlistNode *node = cur->data; 2265 PurpleBuddy *buddy = cur->data;
2266 groups = g_list_append(groups, node->parent->parent); 2266 groups = g_list_append(groups, purple_buddy_get_group(buddy));
2267 } 2267 }
2268 2268
2269 if (prpl_info->add_buddies != NULL) 2269 if (prpl_info->add_buddies != NULL)
2270 prpl_info->add_buddies(gc, buddies, groups); 2270 prpl_info->add_buddies(gc, buddies, groups);
2271 else if (prpl_info->add_buddy != NULL) { 2271 else if (prpl_info->add_buddy != NULL) {
2511 purple_request_close_with_handle(account); 2511 purple_request_close_with_handle(account);
2512 2512
2513 purple_accounts_remove(account); 2513 purple_accounts_remove(account);
2514 2514
2515 /* Remove this account's buddies */ 2515 /* Remove this account's buddies */
2516 for (gnode = purple_blist_get_root(); gnode != NULL; gnode = gnode->next) { 2516 for (gnode = purple_blist_get_root();
2517 gnode != NULL;
2518 gnode = purple_blist_node_get_sibling_next(gnode))
2519 {
2517 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) 2520 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
2518 continue; 2521 continue;
2519 2522
2520 cnode = gnode->child; 2523 cnode = purple_blist_node_get_first_child(gnode);
2521 while (cnode) { 2524 while (cnode) {
2522 PurpleBlistNode *cnode_next = cnode->next; 2525 PurpleBlistNode *cnode_next = purple_blist_node_get_sibling_next(cnode);
2523 2526
2524 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { 2527 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
2525 bnode = cnode->child; 2528 bnode = purple_blist_node_get_first_child(cnode);
2526 while (bnode) { 2529 while (bnode) {
2527 PurpleBlistNode *bnode_next = bnode->next; 2530 PurpleBlistNode *bnode_next = purple_blist_node_get_sibling_next(bnode);
2528 2531
2529 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) { 2532 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
2530 PurpleBuddy *b = (PurpleBuddy *)bnode; 2533 PurpleBuddy *b = (PurpleBuddy *)bnode;
2531 2534
2532 if (b->account == account) 2535 if (purple_buddy_get_account(b) == account)
2533 purple_blist_remove_buddy(b); 2536 purple_blist_remove_buddy(b);
2534 } 2537 }
2535 bnode = bnode_next; 2538 bnode = bnode_next;
2536 } 2539 }
2537 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) { 2540 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
2538 PurpleChat *c = (PurpleChat *)cnode; 2541 PurpleChat *c = (PurpleChat *)cnode;
2539 2542
2540 if (c->account == account) 2543 if (purple_chat_get_account(c) == account)
2541 purple_blist_remove_chat(c); 2544 purple_blist_remove_chat(c);
2542 } 2545 }
2543 cnode = cnode_next; 2546 cnode = cnode_next;
2544 } 2547 }
2545 } 2548 }