Mercurial > pidgin
comparison src/protocols/irc/irc.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 | c4c28874ecd3 |
| children | 677d3cb193a1 |
comparison
equal
deleted
inserted
replaced
| 4784:b1365291f002 | 4785:1e28e7d802a1 |
|---|---|
| 567 | 567 |
| 568 static void | 568 static void |
| 569 handle_list(struct gaim_connection *gc, char *list) | 569 handle_list(struct gaim_connection *gc, char *list) |
| 570 { | 570 { |
| 571 struct irc_data *id = gc->proto_data; | 571 struct irc_data *id = gc->proto_data; |
| 572 GSList *gr, *gr1; | 572 GaimBlistNode *gnode, *bnode; |
| 573 | 573 |
| 574 id->str = g_string_append_c(id->str, ' '); | 574 id->str = g_string_append_c(id->str, ' '); |
| 575 id->str = g_string_append(id->str, list); | 575 id->str = g_string_append(id->str, list); |
| 576 id->bc--; | 576 id->bc--; |
| 577 if (id->bc) | 577 if (id->bc) |
| 578 return; | 578 return; |
| 579 | 579 |
| 580 g_strdown(id->str->str); | 580 g_strdown(id->str->str); |
| 581 gr = gaim_blist_groups(); | 581 |
| 582 gr1 = gr; | 582 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 583 while (gr1) { | 583 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 584 GSList *m = gaim_blist_members((struct group *)gr1->data); | 584 continue; |
| 585 GSList *m1 = m; | 585 for(bnode = gnode->child; bnode; bnode = bnode->next) { |
| 586 while (m1) { | 586 struct buddy *b = (struct buddy *)bnode; |
| 587 struct buddy *b = m->data; | 587 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 588 continue; | |
| 588 if(b->account->gc == gc) { | 589 if(b->account->gc == gc) { |
| 589 char *tmp = g_strdup(b->name); | 590 char *tmp = g_strdup(b->name); |
| 590 char *x, *l; | 591 char *x, *l; |
| 591 g_strdown(tmp); | 592 g_strdown(tmp); |
| 592 x = strstr(id->str->str, tmp); | 593 x = strstr(id->str->str, tmp); |
| 597 serv_got_update(gc, b->name, 1, 0, 0, 0, 0); | 598 serv_got_update(gc, b->name, 1, 0, 0, 0, 0); |
| 598 else if (b->present && !x) | 599 else if (b->present && !x) |
| 599 serv_got_update(gc, b->name, 0, 0, 0, 0, 0); | 600 serv_got_update(gc, b->name, 0, 0, 0, 0, 0); |
| 600 g_free(tmp); | 601 g_free(tmp); |
| 601 } | 602 } |
| 602 m1 = m1->next; | 603 } |
| 603 } | 604 } |
| 604 g_slist_free(m); | |
| 605 gr1 = gr1->next; | |
| 606 } | |
| 607 g_slist_free(gr); | |
| 608 g_string_free(id->str, TRUE); | 605 g_string_free(id->str, TRUE); |
| 609 id->str = g_string_new(""); | 606 id->str = g_string_new(""); |
| 610 } | 607 } |
| 611 | 608 |
| 612 static gboolean | 609 static gboolean |
| 616 struct irc_data *id = gc->proto_data; | 613 struct irc_data *id = gc->proto_data; |
| 617 char buf[500]; | 614 char buf[500]; |
| 618 int n = g_snprintf(buf, sizeof(buf), "ISON"); | 615 int n = g_snprintf(buf, sizeof(buf), "ISON"); |
| 619 gboolean found = FALSE; | 616 gboolean found = FALSE; |
| 620 | 617 |
| 621 GSList *gr = gaim_blist_groups(); | 618 GaimBlistNode *gnode, *bnode; |
| 622 GSList *gr1 = gr; | 619 |
| 623 if (!gr || id->bc) | 620 if (id->bc) |
| 624 return TRUE; | 621 return TRUE; |
| 625 | 622 |
| 626 while (gr1) { | 623 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 627 struct group *g = gr->data; | 624 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 628 GSList *m = gaim_blist_members(g); | 625 continue; |
| 629 GSList *m1 = m; | 626 for(bnode = gnode->child; bnode; bnode = bnode->next) { |
| 630 while (m1) { | 627 struct buddy *b = (struct buddy *)bnode; |
| 631 struct buddy *b = m->data; | 628 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 629 continue; | |
| 632 if(b->account->gc == gc) { | 630 if(b->account->gc == gc) { |
| 633 if (n + strlen(b->name) + 2 > sizeof(buf)) { | 631 if (n + strlen(b->name) + 2 > sizeof(buf)) { |
| 634 g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); | 632 g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); |
| 635 irc_write(id->fd, buf, n); | 633 irc_write(id->fd, buf, n); |
| 636 id->bc++; | 634 id->bc++; |
| 638 } | 636 } |
| 639 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", b->name); | 637 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", b->name); |
| 640 | 638 |
| 641 found = TRUE; | 639 found = TRUE; |
| 642 } | 640 } |
| 643 m1 = m1->next; | 641 } |
| 644 } | 642 } |
| 645 g_slist_free(m); | |
| 646 gr1 = gr1->next; | |
| 647 } | |
| 648 g_slist_free(gr); | |
| 649 | 643 |
| 650 if (found) { | 644 if (found) { |
| 651 g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); | 645 g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); |
| 652 irc_write(id->fd, buf, strlen(buf)); | 646 irc_write(id->fd, buf, strlen(buf)); |
| 653 id->bc++; | 647 id->bc++; |
