Mercurial > pidgin
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 { |
