diff src/buddy.c @ 2681:37d80035e77f

[gaim-migrate @ 2694] don't ask. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 06 Nov 2001 23:58:24 +0000
parents 44773c4b0f16
children f3c094e78609
line wrap: on
line diff
--- a/src/buddy.c	Tue Nov 06 21:30:31 2001 +0000
+++ b/src/buddy.c	Tue Nov 06 23:58:24 2001 +0000
@@ -999,6 +999,7 @@
 		 * we change the group that the buddy is in */
 		struct group *old_g, *new_g = (struct group *)ptype;
 		struct buddy *s = NULL, *buddy = (struct buddy *)ctype;
+		gboolean add = FALSE;
 		int pos;
 
 		if (buddy->gc != new_g->gc) {
@@ -1015,7 +1016,7 @@
 				og->members = g_slist_remove(og->members, a);
 			} else {
 				/* we don't have this buddy yet; let's add him */
-				serv_add_buddy(new_g->gc, buddy->name);
+				add = TRUE;
 			}
 		}
 
@@ -1035,6 +1036,10 @@
 		} else
 			new_g->members = g_slist_append(new_g->members, buddy);
 
+		/* we do the add after it's added locally so that prpls can find it if necessary */
+		if (add)
+			serv_add_buddy(new_g->gc, buddy->name);
+
 		do_export(buddy->gc);
 		if (buddy->gc != new_g->gc) {
 			do_export(new_g->gc);
@@ -1245,7 +1250,7 @@
 			b = (struct buddy *)type;
 			g = find_group_by_buddy(b->gc, b->name);
 			gct = b->gc;
-			serv_remove_buddy(b->gc, b->name);
+			serv_remove_buddy(b->gc, b->name, g->name);
 			remove_buddy(b->gc, g, b);
 			gtk_ctree_remove_node(GTK_CTREE(edittree), node);
 			do_export(gct);