comparison mcabber/src/roster.c @ 607:cf722bff6579

Improve IQ management
author Mikael Berthe <mikael@lilotux.net>
date Thu, 15 Dec 2005 18:29:14 +0100
parents 9516db839e08
children 0e8247cf2bd1
comparison
equal deleted inserted replaced
606:0b4ed231ebc2 607:cf722bff6579
275 // Let's be arbitrary: default group has an empty name (""). 275 // Let's be arbitrary: default group has an empty name ("").
276 if (!group) group = ""; 276 if (!group) group = "";
277 277
278 // #1 Check this user doesn't already exist 278 // #1 Check this user doesn't already exist
279 slist = roster_find(jid, jidsearch, 0); 279 slist = roster_find(jid, jidsearch, 0);
280 if (slist) return slist; 280 if (slist) {
281 char *oldgroupname;
282 // That's an update
283 roster_usr = slist->data;
284 roster_usr->subscription = esub;
285 if (name)
286 buddy_setname(slist->data, (char*)name);
287 // Let's check if the group name has changed
288 oldgroupname = ((roster*)((GSList*)roster_usr->list)->data)->name;
289 if (group && strcmp(oldgroupname, group))
290 buddy_setgroup(slist->data, (char*)group);
291 return slist;
292 }
281 // #2 add group if necessary 293 // #2 add group if necessary
282 slist = roster_add_group(group); 294 slist = roster_add_group(group);
283 if (!slist) return NULL; 295 if (!slist) return NULL;
284 my_group = (roster*)slist->data; 296 my_group = (roster*)slist->data;
285 // #3 Create user node 297 // #3 Create user node