diff --git a/src/friendlist.c b/src/friendlist.c index d55c173..13059be 100644 --- a/src/friendlist.c +++ b/src/friendlist.c @@ -133,7 +133,7 @@ static void friendlist_onStatusMessageChange(ToxWindow *self, int num, uint8_t * friends[num].statusmsg_len = len; } -static void friendlist_onFriendAdded(ToxWindow *self, Tox *m, int num, bool sort) +void friendlist_onFriendAdded(ToxWindow *self, Tox *m, int num, bool sort) { if (max_friends_index < 0 || max_friends_index >= MAX_FRIENDS_NUM) return; diff --git a/src/friendlist.h b/src/friendlist.h index 09ffe62..23a3565 100644 --- a/src/friendlist.h +++ b/src/friendlist.h @@ -46,6 +46,8 @@ ToxWindow new_friendlist(void); void disable_chatwin(int f_num); int get_friendnum(uint8_t *name); +void friendlist_onFriendAdded(ToxWindow *self, Tox *m, int num, bool sort); + /* sorts friendlist_index first by connection status then alphabetically */ void sort_friendlist_index(Tox *m); diff --git a/src/main.c b/src/main.c index 4bbd615..4f4595c 100644 --- a/src/main.c +++ b/src/main.c @@ -283,6 +283,15 @@ static void do_connection(Tox *m, ToxWindow *prompt) } } +static void load_friendlist(Tox *m) +{ + int i; + uint32_t numfriends = tox_count_friendlist(m); + + for (i = 0; i < numfriends; ++i) + friendlist_onFriendAdded(NULL, m, i, false); +} + /* * Store Messenger to given location * Return 0 stored successfully @@ -361,12 +370,7 @@ static void load_data(Tox *m, char *path) } tox_load(m, buf, len); - - uint32_t i = 0; - uint8_t name[TOX_MAX_NAME_LENGTH]; - - while (tox_get_name(m, i, name) != -1) - on_friendadded(m, i++, false); + load_friendlist(m); free(buf); fclose(fd); @@ -384,12 +388,11 @@ static void load_data(Tox *m, char *path) void exit_toxic(Tox *m) { store_data(m, DATA_FILE); - close_all_file_senders(); kill_all_windows(); + log_disable(prompt->promptbuf->log); free(DATA_FILE); free(prompt->stb); - log_disable(prompt->promptbuf->log); free(prompt->promptbuf->log); free(prompt->promptbuf); tox_kill(m);