From: Nathan W. <fac...@us...> - 2003-01-19 22:17:20
|
Update of /cvsroot/gaim/gaim/src/protocols/irc In directory sc8-pr-cvs1:/tmp/cvs-serv16344/src/protocols/irc Modified Files: irc.c Log Message: XML Blist Gaim stores all the buddy lists in one big happy file now. You can order the buddies however you want, and they'll stay ordered that way. We can also store some per-buddy information now, which will be cool. Index: irc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/irc/irc.c,v retrieving revision 1.118 retrieving revision 1.119 diff -u -d -r1.118 -r1.119 --- irc.c 8 Jan 2003 08:18:48 -0000 1.118 +++ irc.c 19 Jan 2003 22:16:47 -0000 1.119 @@ -610,23 +610,25 @@ return; g_strdown(id->str->str); - gr = gc->groups; + gr = groups; while (gr) { GSList *m = ((struct group *)gr->data)->members; while (m) { struct buddy *b = m->data; - char *tmp = g_strdup(b->name); - char *x, *l; - g_strdown(tmp); - x = strstr(id->str->str, tmp); - l = x + strlen(b->name); - if (x && (*l != ' ' && *l != 0)) - x = 0; - if (!b->present && x) - serv_got_update(gc, b->name, 1, 0, 0, 0, 0, 0); - else if (b->present && !x) - serv_got_update(gc, b->name, 0, 0, 0, 0, 0, 0); - g_free(tmp); + if(b->user->gc == gc) { + char *tmp = g_strdup(b->name); + char *x, *l; + g_strdown(tmp); + x = strstr(id->str->str, tmp); + l = x + strlen(b->name); + if (x && (*l != ' ' && *l != 0)) + x = 0; + if (!b->present && x) + serv_got_update(gc, b->name, 1, 0, 0, 0, 0, 0); + else if (b->present && !x) + serv_got_update(gc, b->name, 0, 0, 0, 0, 0, 0); + g_free(tmp); + } m = m->next; } gr = gr->next; @@ -643,7 +645,7 @@ char buf[500]; int n = g_snprintf(buf, sizeof(buf), "ISON"); - GSList *gr = gc->groups; + GSList *gr = groups; if (!gr || id->bc) return TRUE; @@ -652,13 +654,15 @@ GSList *m = g->members; while (m) { struct buddy *b = m->data; - if (n + strlen(b->name) + 2 > sizeof(buf)) { - g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); - irc_write(id->fd, buf, n); - id->bc++; - n = g_snprintf(buf, sizeof(buf), "ISON"); + if(b->user->gc == gc) { + if (n + strlen(b->name) + 2 > sizeof(buf)) { + g_snprintf(buf + n, sizeof(buf) - n, "\r\n"); + irc_write(id->fd, buf, n); + id->bc++; + n = g_snprintf(buf, sizeof(buf), "ISON"); + } + n += g_snprintf(buf + n, sizeof(buf) - n, " %s", b->name); } - n += g_snprintf(buf + n, sizeof(buf) - n, " %s", b->name); m = m->next; } gr = gr->next; @@ -1320,9 +1324,6 @@ /* Now lets sign ourselves on */ account_online(gc); serv_finish_login(gc); - - if (bud_list_cache_exists(gc)) - do_import(gc, NULL); /* we don't call this now because otherwise some IRC servers might not like us */ idata->timer = g_timeout_add(20000, irc_request_buddy_update, gc); |