Mercurial > ~mikael > mcabber > hg
diff 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 |
line wrap: on
line diff
--- a/mcabber/src/roster.c Thu Dec 15 15:40:21 2005 +0100 +++ b/mcabber/src/roster.c Thu Dec 15 18:29:14 2005 +0100 @@ -277,7 +277,19 @@ // #1 Check this user doesn't already exist slist = roster_find(jid, jidsearch, 0); - if (slist) return slist; + if (slist) { + char *oldgroupname; + // That's an update + roster_usr = slist->data; + roster_usr->subscription = esub; + if (name) + buddy_setname(slist->data, (char*)name); + // Let's check if the group name has changed + oldgroupname = ((roster*)((GSList*)roster_usr->list)->data)->name; + if (group && strcmp(oldgroupname, group)) + buddy_setgroup(slist->data, (char*)group); + return slist; + } // #2 add group if necessary slist = roster_add_group(group); if (!slist) return NULL;