| 324 g = gaim_group_new(group); |
324 g = gaim_group_new(group); |
| 325 gaim_blist_add_group(g, NULL); |
325 gaim_blist_add_group(g, NULL); |
| 326 } |
326 } |
| 327 b = gaim_buddy_new(gc->account, name, strlen(show) ? show : NULL); |
327 b = gaim_buddy_new(gc->account, name, strlen(show) ? show : NULL); |
| 328 gaim_blist_add_buddy(b,NULL,g,NULL); |
328 gaim_blist_add_buddy(b,NULL,g,NULL); |
| 329 gaim_blist_save(); |
|
| 330 |
329 |
| 331 userlist_size++; |
330 userlist_size++; |
| 332 userlist = g_renew(uin_t, userlist, userlist_size); |
331 userlist = g_renew(uin_t, userlist, userlist_size); |
| 333 userlist[userlist_size - 1] = |
332 userlist[userlist_size - 1] = |
| 334 (uin_t) strtol((char *)name, (char **)NULL, 10); |
333 (uin_t) strtol((char *)name, (char **)NULL, 10); |
| 344 gg_notify(gd->sess, userlist, userlist_size); |
343 gg_notify(gd->sess, userlist, userlist_size); |
| 345 g_free(userlist); |
344 g_free(userlist); |
| 346 } |
345 } |
| 347 } |
346 } |
| 348 |
347 |
| 349 static void agg_save_buddy_list (GaimConnection *gc, char *existlist) |
348 static void agg_save_buddy_list(GaimConnection *gc, char *existlist) |
| 350 { |
349 { |
| |
350 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
| 351 GaimBlistNode *gnode, *cnode, *bnode; |
351 GaimBlistNode *gnode, *cnode, *bnode; |
| 352 char *buddylist = g_strdup(existlist ? existlist : ""); |
352 char *buddylist = g_strdup(existlist ? existlist : ""); |
| 353 char *ptr; |
353 char *ptr; |
| 354 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
|
| 355 |
354 |
| 356 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
355 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 357 GaimGroup *g = (GaimGroup *)gnode; |
356 GaimGroup *g = (GaimGroup *)gnode; |
| 358 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
357 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 359 continue; |
358 continue; |
| 779 g_free(imsg); |
778 g_free(imsg); |
| 780 } |
779 } |
| 781 return 1; |
780 return 1; |
| 782 } |
781 } |
| 783 |
782 |
| 784 static void agg_add_buddy(GaimConnection *gc, const char *who, GaimGroup *group) |
783 static void agg_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
| 785 { |
784 { |
| 786 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
785 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
| 787 if (invalid_uin(who)) |
786 if (invalid_uin(buddy->name)) |
| 788 return; |
787 return; |
| 789 gg_add_notify(gd->sess, strtol(who, (char **)NULL, 10)); |
788 gg_add_notify(gd->sess, strtol(buddy->name, (char **)NULL, 10)); |
| 790 agg_save_buddy_list(gc, NULL); |
789 agg_save_buddy_list(gc, NULL); |
| 791 } |
790 } |
| 792 |
791 |
| 793 static void agg_rem_buddy(GaimConnection *gc, const char *who, const char *group) |
792 static void agg_rem_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
| 794 { |
793 { |
| 795 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
794 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
| 796 if (invalid_uin(who)) |
795 if (invalid_uin(buddy->name)) |
| 797 return; |
796 return; |
| 798 gg_remove_notify(gd->sess, strtol(who, (char **)NULL, 10)); |
797 gg_remove_notify(gd->sess, strtol(buddy->name, (char **)NULL, 10)); |
| 799 agg_save_buddy_list(gc, NULL); |
798 agg_save_buddy_list(gc, NULL); |
| 800 } |
799 } |
| 801 |
800 |
| 802 static void agg_add_buddies(GaimConnection *gc, GList *whos) |
801 static void agg_add_buddies(GaimConnection *gc, GList *buddies, GList *groups) |
| 803 { |
802 { |
| 804 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
803 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
| 805 uin_t *userlist = NULL; |
804 uin_t *userlist = NULL; |
| 806 int userlist_size = 0; |
805 int userlist_size = 0; |
| 807 |
806 |
| 808 while (whos) { |
807 while (buddies) { |
| 809 if (!invalid_uin(whos->data)) { |
808 GaimBuddy *buddy = buddies->data; |
| |
809 if (!invalid_uin(buddy->name)) { |
| 810 userlist_size++; |
810 userlist_size++; |
| 811 userlist = g_renew(uin_t, userlist, userlist_size); |
811 userlist = g_renew(uin_t, userlist, userlist_size); |
| 812 userlist[userlist_size - 1] = |
812 userlist[userlist_size - 1] = |
| 813 (uin_t) strtol((char *)whos->data, (char **)NULL, 10); |
813 (uin_t) strtol(buddy->name, (char **)NULL, 10); |
| 814 } |
814 } |
| 815 whos = g_list_next(whos); |
815 buddies = g_list_next(buddies); |
| 816 } |
816 } |
| 817 |
817 |
| 818 if (userlist) { |
818 if (userlist) { |
| 819 gg_notify(gd->sess, userlist, userlist_size); |
819 gg_notify(gd->sess, userlist, userlist_size); |
| 820 g_free(userlist); |
820 g_free(userlist); |
| 1517 show, show, show, show, "", gname, name, "", ""); |
1518 show, show, show, show, "", gname, name, "", ""); |
| 1518 agg_save_buddy_list(gc, newdata); |
1519 agg_save_buddy_list(gc, newdata); |
| 1519 g_free(newdata); |
1520 g_free(newdata); |
| 1520 } |
1521 } |
| 1521 |
1522 |
| 1522 static void agg_rename_group (GaimConnection *gc, const char *old_group, |
1523 static void agg_rename_group (GaimConnection *gc, const char *old_name, |
| 1523 const char *new_group, GList *members) |
1524 GaimGroup *group, GList *moved_buddies) |
| 1524 { |
1525 { |
| 1525 agg_save_buddy_list(gc, NULL); |
1526 agg_save_buddy_list(gc, NULL); |
| 1526 } |
1527 } |
| 1527 |
1528 |
| 1528 static GaimPlugin *my_protocol = NULL; |
1529 static GaimPlugin *my_protocol = NULL; |