| 490 /* we assume that gc is not NULL and that the buddy exists somewhere within the |
490 /* we assume that gc is not NULL and that the buddy exists somewhere within the |
| 491 * gc's buddy list, therefore we can safely remove it. we need to ensure this |
491 * gc's buddy list, therefore we can safely remove it. we need to ensure this |
| 492 * via the UI |
492 * via the UI |
| 493 */ |
493 */ |
| 494 |
494 |
| |
495 grp = g_slist_find(gc->groups, rem_g); |
| |
496 delg = (struct group *)grp->data; |
| |
497 mem = delg->members; |
| |
498 |
| |
499 mem = g_slist_find(mem, rem_b); |
| |
500 delb = (struct buddy *)mem->data; |
| |
501 |
| |
502 delg->members = g_slist_remove(delg->members, delb); |
| |
503 serv_remove_buddy(gc, delb->name); |
| |
504 |
| 495 gs = find_group_show(rem_g->name); |
505 gs = find_group_show(rem_g->name); |
| 496 if (gs) { |
506 if (gs) { |
| 497 bs = find_buddy_show(gs, rem_b->name); |
507 bs = find_buddy_show(gs, rem_b->name); |
| 498 if (bs) { |
508 if (bs) { |
| 499 if (g_slist_find(bs->connlist, gc)) { |
509 if (g_slist_find(bs->connlist, gc)) { |
| 515 g_free(gs); |
525 g_free(gs); |
| 516 } else |
526 } else |
| 517 update_num_group(gs); |
527 update_num_group(gs); |
| 518 } else |
528 } else |
| 519 update_num_group(gs); |
529 update_num_group(gs); |
| 520 } |
530 } else |
| 521 } |
531 update_num_group(gs); |
| 522 } |
532 } else |
| 523 |
533 update_num_group(gs); |
| 524 grp = g_slist_find(gc->groups, rem_g); |
534 } |
| 525 delg = (struct group *)grp->data; |
535 |
| 526 mem = delg->members; |
|
| 527 |
|
| 528 mem = g_slist_find(mem, rem_b); |
|
| 529 delb = (struct buddy *)mem->data; |
|
| 530 |
|
| 531 delg->members = g_slist_remove(delg->members, delb); |
|
| 532 serv_remove_buddy(gc, delb->name); |
|
| 533 c = find_conversation(delb->name); |
536 c = find_conversation(delb->name); |
| 534 g_free(delb); |
|
| 535 mem = delg->members; |
|
| 536 |
|
| 537 if (c) |
537 if (c) |
| 538 update_buttons_by_protocol(c); |
538 update_buttons_by_protocol(c); |
| |
539 g_free(delb); |
| 539 |
540 |
| 540 // flush buddy list to cache |
541 // flush buddy list to cache |
| 541 |
542 |
| 542 do_export( (GtkWidget *) NULL, 0 ); |
543 do_export( (GtkWidget *) NULL, 0 ); |
| 543 } |
544 } |