Mercurial > pidgin
comparison src/multi.c @ 4785:1e28e7d802a1
[gaim-migrate @ 5105]
fix a few things, get rid of a few stale functions, and get rid of the
compatibility functions. wee!
committer: Tailor Script <tailor@pidgin.im>
| author | Nathan Walp <nwalp@pidgin.im> |
|---|---|
| date | Sat, 15 Mar 2003 03:23:30 +0000 |
| parents | 85c6c3a60503 |
| children | 0ed37c803503 |
comparison
equal
deleted
inserted
replaced
| 4784:b1365291f002 | 4785:1e28e7d802a1 |
|---|---|
| 152 gint active_count; | 152 gint active_count; |
| 153 } *meter_win = NULL; | 153 } *meter_win = NULL; |
| 154 | 154 |
| 155 void destroy_gaim_conn(struct gaim_connection *gc) | 155 void destroy_gaim_conn(struct gaim_connection *gc) |
| 156 { | 156 { |
| 157 GSList *g = gaim_blist_groups(), *g1 = g; | 157 GaimBlistNode *gnode,*bnode; |
| 158 GSList *h, *h1; | |
| 159 struct group *m; | 158 struct group *m; |
| 160 struct buddy *n; | 159 struct buddy *n; |
| 161 while (g1) { | 160 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 162 m = (struct group *)g1->data; | 161 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 163 g1 = g_slist_next(g1); | 162 continue; |
| 164 h1 = h = gaim_blist_members(m); | 163 m = (struct group *)gnode; |
| 165 while (h1) { | 164 for(bnode = gnode->child; bnode; bnode = bnode->next) { |
| 166 n = (struct buddy *)h1->data; | 165 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 167 h1 = g_slist_next(h1); | 166 continue; |
| 167 n = (struct buddy *)bnode; | |
| 168 if(n->account == gc->account) { | 168 if(n->account == gc->account) { |
| 169 n->present = 0; | 169 n->present = 0; |
| 170 } | 170 } |
| 171 } | 171 } |
| 172 g_slist_free(h); | 172 } |
| 173 } | |
| 174 g_slist_free(g); | |
| 175 g_free(gc->away); | 173 g_free(gc->away); |
| 176 g_free(gc->away_state); | 174 g_free(gc->away_state); |
| 177 g_free(gc); | 175 g_free(gc); |
| 178 | 176 |
| 179 if (!connections && mainwindow) | 177 if (!connections && mainwindow) |
| 1312 } | 1310 } |
| 1313 | 1311 |
| 1314 static void do_del_acct(struct gaim_account *account) | 1312 static void do_del_acct(struct gaim_account *account) |
| 1315 { | 1313 { |
| 1316 GtkTreeIter iter; | 1314 GtkTreeIter iter; |
| 1317 GSList *grps1, *grps, *buds; | 1315 GaimBlistNode *gnode,*bnode; |
| 1318 grps1 = grps = gaim_blist_groups(); | |
| 1319 | 1316 |
| 1320 if (account->gc) { | 1317 if (account->gc) { |
| 1321 account->gc->wants_to_die = TRUE; | 1318 account->gc->wants_to_die = TRUE; |
| 1322 signoff(account->gc); | 1319 signoff(account->gc); |
| 1323 } | 1320 } |
| 1326 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); | 1323 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); |
| 1327 } | 1324 } |
| 1328 | 1325 |
| 1329 | 1326 |
| 1330 /* remove the buddies for the account we just destroyed */ | 1327 /* remove the buddies for the account we just destroyed */ |
| 1331 while(grps1) { | 1328 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 1332 struct group *g = grps1->data; | 1329 struct group *g = (struct group *)gnode; |
| 1333 GSList *buds1, *buds = gaim_blist_members(g); | 1330 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 1334 buds1 = buds; | 1331 continue; |
| 1335 grps1 = grps1->next; | 1332 for(bnode = gnode->child; bnode; bnode = bnode->next) { |
| 1336 while(buds1) { | 1333 struct buddy *b = (struct buddy *)bnode; |
| 1337 struct buddy *b = buds1->data; | 1334 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 1338 buds1 = buds1->next; | 1335 continue; |
| 1339 if(b->account == account) { | 1336 if(b->account == account) { |
| 1340 gaim_blist_remove_buddy(b); | 1337 gaim_blist_remove_buddy(b); |
| 1341 } | 1338 } |
| 1342 } | 1339 } |
| 1343 g_slist_free(buds); | 1340 if(!gnode->child) { |
| 1344 if(!((GaimBlistNode*)g)->child) { | |
| 1345 gaim_blist_remove_group(g); | 1341 gaim_blist_remove_group(g); |
| 1346 } | 1342 } |
| 1347 } | 1343 } |
| 1348 g_slist_free(grps); | |
| 1349 | 1344 |
| 1350 gaim_accounts = g_slist_remove(gaim_accounts, account); | 1345 gaim_accounts = g_slist_remove(gaim_accounts, account); |
| 1351 | 1346 |
| 1352 gaim_blist_save(); | 1347 gaim_blist_save(); |
| 1353 | 1348 |
| 1520 void account_online(struct gaim_connection *gc) | 1515 void account_online(struct gaim_connection *gc) |
| 1521 { | 1516 { |
| 1522 struct signon_meter *meter = find_signon_meter(gc); | 1517 struct signon_meter *meter = find_signon_meter(gc); |
| 1523 GList *wins; | 1518 GList *wins; |
| 1524 GtkTreeIter iter; | 1519 GtkTreeIter iter; |
| 1525 GSList *grps, *grps1, *buds, *buds1; | 1520 GaimBlistNode *gnode,*bnode; |
| 1526 GList *add_buds=NULL; | 1521 GList *add_buds=NULL; |
| 1527 GList *l; | 1522 GList *l; |
| 1528 | 1523 |
| 1529 /* Set the time the account came online */ | 1524 /* Set the time the account came online */ |
| 1530 time(&gc->login_time); | 1525 time(&gc->login_time); |
| 1577 g_free(opt_away_arg); | 1572 g_free(opt_away_arg); |
| 1578 opt_away_arg = NULL; | 1573 opt_away_arg = NULL; |
| 1579 } | 1574 } |
| 1580 | 1575 |
| 1581 /* let the prpl know what buddies we pulled out of the local list */ | 1576 /* let the prpl know what buddies we pulled out of the local list */ |
| 1582 grps = gaim_blist_groups(); | 1577 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 1583 for(grps1 = grps; grps1; grps1 = grps1->next) { | 1578 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 1584 struct group *g = grps1->data; | 1579 continue; |
| 1585 buds = gaim_blist_members(g); | 1580 for(bnode = gnode->child; bnode; bnode = bnode->next) { |
| 1586 for(buds1 = buds; buds1; buds1 = buds1->next) { | 1581 struct buddy *b = (struct buddy *)bnode; |
| 1587 struct buddy *b = buds1->data; | 1582 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 1583 continue; | |
| 1588 if(b->account == gc->account) { | 1584 if(b->account == gc->account) { |
| 1589 add_buds = g_list_append(add_buds, b->name); | 1585 add_buds = g_list_append(add_buds, b->name); |
| 1590 } | 1586 } |
| 1591 } | 1587 } |
| 1592 g_slist_free(buds); | 1588 } |
| 1593 } | |
| 1594 g_slist_free(grps); | |
| 1595 | 1589 |
| 1596 if(add_buds) { | 1590 if(add_buds) { |
| 1597 serv_add_buddies(gc, add_buds); | 1591 serv_add_buddies(gc, add_buds); |
| 1598 g_list_free(add_buds); | 1592 g_list_free(add_buds); |
| 1599 } | 1593 } |
