comparison src/protocols/jabber/roster.c @ 7955:119a22025818

[gaim-migrate @ 8630] fun jabber stuff, which isn't done yet. mostly harmless, and committing this now makes the next commit that much easier for a lazy person such as myself to type. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Mon, 29 Dec 2003 08:59:22 +0000
parents c42d1532faab
children 81a63a9bff88
comparison
equal deleted inserted replaced
7954:6dc91824d8d4 7955:119a22025818
53 53
54 static void add_gaim_buddies_in_groups(JabberStream *js, const char *jid, 54 static void add_gaim_buddies_in_groups(JabberStream *js, const char *jid,
55 const char *alias, GSList *groups) 55 const char *alias, GSList *groups)
56 { 56 {
57 GSList *buddies, *g2, *l; 57 GSList *buddies, *g2, *l;
58 int present =0, idle=0, signon=0, state=0; 58 int present =0, idle=0, state=0;
59 59
60 buddies = gaim_find_buddies(js->gc->account, jid); 60 buddies = gaim_find_buddies(js->gc->account, jid);
61 61
62 g2 = groups; 62 g2 = groups;
63 63
68 return; 68 return;
69 } 69 }
70 70
71 if(buddies) { 71 if(buddies) {
72 present = ((GaimBuddy*)buddies->data)->present; 72 present = ((GaimBuddy*)buddies->data)->present;
73 signon = ((GaimBuddy*)buddies->data)->signon;
74 idle = ((GaimBuddy*)buddies->data)->idle; 73 idle = ((GaimBuddy*)buddies->data)->idle;
75 state = ((GaimBuddy*)buddies->data)->uc; 74 state = ((GaimBuddy*)buddies->data)->uc;
76 } 75 }
77 76
78 while(buddies) { 77 while(buddies) {
80 GaimGroup *g = gaim_find_buddys_group(b); 79 GaimGroup *g = gaim_find_buddys_group(b);
81 80
82 buddies = g_slist_remove(buddies, b); 81 buddies = g_slist_remove(buddies, b);
83 82
84 if((l = g_slist_find_custom(g2, g->name, (GCompareFunc)strcmp))) { 83 if((l = g_slist_find_custom(g2, g->name, (GCompareFunc)strcmp))) {
84 const char *servernick;
85
86 if((servernick = gaim_blist_node_get_string((GaimBlistNode*)b, "servernick")))
87 serv_got_alias(js->gc, jid, servernick);
88
85 if(alias && (!b->alias || strcmp(b->alias, alias))) 89 if(alias && (!b->alias || strcmp(b->alias, alias)))
86 gaim_blist_alias_buddy(b, alias); 90 gaim_blist_alias_buddy(b, alias);
87 g_free(l->data); 91 g_free(l->data);
88 g2 = g_slist_delete_link(g2, l); 92 g2 = g_slist_delete_link(g2, l);
89 } else { 93 } else {
99 g = gaim_group_new(g2->data); 103 g = gaim_group_new(g2->data);
100 gaim_blist_add_group(g, NULL); 104 gaim_blist_add_group(g, NULL);
101 } 105 }
102 106
103 b->present = present; 107 b->present = present;
104 b->signon = signon;
105 b->idle = idle; 108 b->idle = idle;
106 b->uc = state; 109 b->uc = state;
107 110
108 gaim_blist_add_buddy(b, NULL, g, NULL); 111 gaim_blist_add_buddy(b, NULL, g, NULL);
112 gaim_blist_alias_buddy(b, alias);
109 g_free(g2->data); 113 g_free(g2->data);
110 g2 = g_slist_delete_link(g2, g2); 114 g2 = g_slist_delete_link(g2, g2);
111 } 115 }
112 116
113 g_slist_free(buddies); 117 g_slist_free(buddies);