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;