Mercurial > ~mikael > mcabber > hg
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 |