comparison src/server.c @ 3348:dd34e0b40fed

[gaim-migrate @ 3367] Support for server-side synchronization on group rename. (Thanks, Mark Doliner) committer: Tailor Script <tailor@pidgin.im>
author Jim Seymour <jseymour>
date Sun, 07 Jul 2002 14:31:57 +0000
parents e102d1629c71
children 8fa61405af2b
comparison
equal deleted inserted replaced
3347:d651e743ac64 3348:dd34e0b40fed
310 if(b->gc == og->gc && b->gc == ng->gc && ng->gc == og->gc) { 310 if(b->gc == og->gc && b->gc == ng->gc && ng->gc == og->gc) {
311 if(b->gc->prpl && b->gc->prpl->group_buddy) { 311 if(b->gc->prpl && b->gc->prpl->group_buddy) {
312 b->gc->prpl->group_buddy(b->gc, b->name, og->name, ng->name); 312 b->gc->prpl->group_buddy(b->gc, b->name, og->name, ng->name);
313 } 313 }
314 } 314 }
315 }
316 }
317
318 /*
319 * Rename a group on server roster/list.
320 */
321 void serv_rename_group(struct gaim_connection *g, struct group *old_group, char *new_name)
322 {
323 if (g && g->prpl && old_group && new_name) {
324 GList *tobemoved = NULL;
325 GSList *original;
326
327 for (original=old_group->members; original; original=g_slist_next(original))
328 tobemoved = g_list_append(tobemoved, ((struct buddy *)original->data)->name);
329
330 if (g->prpl->rename_group) {
331 /* prpl's might need to check if the group already
332 * exists or not, and handle that differently */
333 g->prpl->rename_group(g, old_group->name, new_name, tobemoved);
334 } else {
335 serv_remove_buddies(g, tobemoved, old_group->name);
336 serv_add_buddies(g, tobemoved);
337 }
338
339 g_list_free(tobemoved);
315 } 340 }
316 } 341 }
317 342
318 void serv_add_permit(struct gaim_connection *g, char *name) 343 void serv_add_permit(struct gaim_connection *g, char *name)
319 { 344 {