libpurple/protocols/jabber/roster.c

changeset 20911
554739ed406e
parent 19859
71d37b57eff2
child 20913
30eb3334d381
equal deleted inserted replaced
20910:e2202cc3f125 20911:554739ed406e
227 227
228 if(jb->subscription == JABBER_SUB_REMOVE) { 228 if(jb->subscription == JABBER_SUB_REMOVE) {
229 remove_purple_buddies(js, jid); 229 remove_purple_buddies(js, jid);
230 } else { 230 } else {
231 GSList *groups = NULL; 231 GSList *groups = NULL;
232 for(group = xmlnode_get_child(item, "group"); group; group = xmlnode_get_next_twin(group)) { 232
233 char *group_name;
234
235 if(!(group_name = xmlnode_get_data(group)))
236 group_name = g_strdup("");
237
238 if (g_slist_find_custom(groups, group_name, (GCompareFunc)purple_utf8_strcasecmp) == NULL)
239 groups = g_slist_append(groups, group_name);
240 }
241 if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) 233 if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER)
242 if (!jabber_google_roster_incoming(js, item)) 234 if (!jabber_google_roster_incoming(js, item))
243 continue; 235 continue;
236
237 for(group = xmlnode_get_child(item, "group"); group; group = xmlnode_get_next_twin(group)) {
238 char *group_name;
239
240 if(!(group_name = xmlnode_get_data(group)))
241 group_name = g_strdup("");
242
243 if (g_slist_find_custom(groups, group_name, (GCompareFunc)purple_utf8_strcasecmp) == NULL)
244 groups = g_slist_append(groups, group_name);
245 else
246 g_free(group_name);
247 }
244 add_purple_buddies_to_groups(js, jid, name, groups); 248 add_purple_buddies_to_groups(js, jid, name, groups);
245 } 249 }
246 } 250 }
247 251
248 /* if we're just now parsing the roster for the first time, 252 /* if we're just now parsing the roster for the first time,

mercurial