From: Thadeu Lima de Souza Cascardo Date: Wed, 17 Jul 2013 21:34:44 +0000 (-0300) Subject: Implement adding a friend to a group. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fsgp.git;a=commitdiff_plain;h=f0257343c7bfbb6532178b8624dd402775373bd7 Implement adding a friend to a group. --- diff --git a/src/group.c b/src/group.c index 3566557..41bfb07 100644 --- a/src/group.c +++ b/src/group.c @@ -19,6 +19,7 @@ #include #include #include +#include struct sgp_group { struct sgp_friend **friends; @@ -34,8 +35,24 @@ struct sgp_group * sgp_group_new() return group; } +/* + * TODO: start using references. The group can't take it if we want to + * add a friend to more groups. A single global reference for all + * friends may be good enough. + */ int sgp_group_add_friend(struct sgp_group *group, struct sgp_friend *friend) { + struct sgp_friend **old_friends; + old_friends = group->friends; + group->nr_friends++; + group->friends = realloc(old_friends, + group->nr_friends * sizeof(friend)); + if (!group->friends) { + group->friends = old_friends; + group->nr_friends--; + return -ENOMEM; + } + group->friends[group->nr_friends - 1] = friend; return 0; }