| 346 } |
346 } |
| 347 |
347 |
| 348 void gaim_blist_rename_buddy (GaimBuddy *buddy, const char *name) |
348 void gaim_blist_rename_buddy (GaimBuddy *buddy, const char *name) |
| 349 { |
349 { |
| 350 GaimBlistUiOps *ops = gaimbuddylist->ui_ops; |
350 GaimBlistUiOps *ops = gaimbuddylist->ui_ops; |
| |
351 struct _gaim_hbuddy *hb = g_new(struct _gaim_hbuddy, 1); |
| |
352 |
| |
353 hb->name = g_strdup(gaim_normalize(buddy->account, buddy->name)); |
| |
354 hb->account = buddy->account; |
| |
355 hb->group = ((GaimBlistNode *)buddy)->parent->parent; |
| |
356 g_hash_table_remove(gaimbuddylist->buddies, hb); |
| |
357 |
| |
358 g_free(hb->name); |
| |
359 hb->name = g_strdup(gaim_normalize(buddy->account, name)); |
| |
360 g_hash_table_replace(gaimbuddylist->buddies, hb, buddy); |
| |
361 |
| 351 g_free(buddy->name); |
362 g_free(buddy->name); |
| 352 buddy->name = g_strdup(name); |
363 buddy->name = g_strdup(name); |
| 353 if (ops) |
364 if (ops) |
| 354 ops->update(gaimbuddylist, (GaimBlistNode*)buddy); |
365 ops->update(gaimbuddylist, (GaimBlistNode*)buddy); |
| 355 } |
366 } |