| 2233 GaimBlistNode *gnode, *cnode, *bnode; |
2233 GaimBlistNode *gnode, *cnode, *bnode; |
| 2234 GaimBuddy *buddy; |
2234 GaimBuddy *buddy; |
| 2235 GaimChat *chat; |
2235 GaimChat *chat; |
| 2236 GaimContact *contact; |
2236 GaimContact *contact; |
| 2237 GaimGroup *group; |
2237 GaimGroup *group; |
| |
2238 GList *list = NULL, *iter = NULL; |
| 2238 |
2239 |
| 2239 g_return_if_fail(gaimbuddylist != NULL); |
2240 g_return_if_fail(gaimbuddylist != NULL); |
| 2240 |
2241 |
| 2241 for (gnode = gaimbuddylist->root; gnode; gnode = gnode->next) { |
2242 for (gnode = gaimbuddylist->root; gnode; gnode = gnode->next) { |
| 2242 if (!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
2243 if (!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 2271 |
2272 |
| 2272 contact->currentsize--; |
2273 contact->currentsize--; |
| 2273 if (contact->currentsize == 0) |
2274 if (contact->currentsize == 0) |
| 2274 group->currentsize--; |
2275 group->currentsize--; |
| 2275 |
2276 |
| 2276 gaim_presence_set_status_active(presence, "offline", TRUE); |
2277 if (!g_list_find(list, presence)) |
| |
2278 list = g_list_prepend(list, presence); |
| 2277 |
2279 |
| 2278 if (ops && ops->remove) |
2280 if (ops && ops->remove) |
| 2279 ops->remove(gaimbuddylist, bnode); |
2281 ops->remove(gaimbuddylist, bnode); |
| 2280 } |
2282 } |
| 2281 } |
2283 } |
| 2295 ops->remove(gaimbuddylist, cnode); |
2297 ops->remove(gaimbuddylist, cnode); |
| 2296 } |
2298 } |
| 2297 } |
2299 } |
| 2298 } |
2300 } |
| 2299 } |
2301 } |
| |
2302 |
| |
2303 for (iter = list; iter; iter = iter->next) |
| |
2304 { |
| |
2305 gaim_presence_set_status_active(iter->data, "offline", TRUE); |
| |
2306 } |
| |
2307 g_list_free(list); |
| 2300 } |
2308 } |
| 2301 |
2309 |
| 2302 gboolean gaim_group_on_account(GaimGroup *g, GaimAccount *account) |
2310 gboolean gaim_group_on_account(GaimGroup *g, GaimAccount *account) |
| 2303 { |
2311 { |
| 2304 GaimBlistNode *cnode; |
2312 GaimBlistNode *cnode; |