From f004a4ba82be5c1dc39be289f9de04b0676fe7d7 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Wed, 11 Sep 2013 00:12:03 -0400 Subject: [PATCH] added exit_toxic function (for real this time) --- src/chat.c | 6 +----- src/main.c | 19 ++++++++++++++++--- src/prompt.c | 6 +----- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/chat.c b/src/chat.c index 9dc6dc2..ec6063f 100644 --- a/src/chat.c +++ b/src/chat.c @@ -203,11 +203,7 @@ static void execute(ToxWindow *self, ChatContext *ctx, StatusBar *statusbar, Tox print_help(ctx); else if (!strcmp(cmd, "/quit") || !strcmp(cmd, "/exit") || !strcmp(cmd, "/q")) { - endwin(); - store_data(m, DATA_FILE); - free(DATA_FILE); - tox_kill(m); - exit(0); + exit_toxic(m); } else if (!strncmp(cmd, "/me ", strlen("/me "))) { diff --git a/src/main.c b/src/main.c index 11bc1c9..16c3e7a 100644 --- a/src/main.c +++ b/src/main.c @@ -354,6 +354,21 @@ static void load_data(Tox *m, char *path) } } +void exit_toxic(Tox *m) +{ + store_data(m, DATA_FILE); + + if (DATA_FILE != NULL) + free(DATA_FILE); + + if (SRVLIST_FILE != NULL) + free(SRVLIST_FILE); + + tox_kill(m); + endwin(); + exit(EXIT_SUCCESS); +} + int main(int argc, char *argv[]) { char *user_config_dir = get_user_config_dir(); @@ -441,8 +456,6 @@ int main(int argc, char *argv[]) draw_active_window(m); } - tox_kill(m); - free(DATA_FILE); - free(SRVLIST_FILE); + exit_toxic(m); return 0; } diff --git a/src/prompt.c b/src/prompt.c index 3fa10d6..6b14045 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -292,11 +292,7 @@ void cmd_connect(ToxWindow *self, Tox *m, int argc, char **argv) void cmd_quit(ToxWindow *self, Tox *m, int argc, char **argv) { - endwin(); - store_data(m, DATA_FILE); - free(DATA_FILE); - tox_kill(m); - exit(EXIT_SUCCESS); + exit_toxic(m); } void cmd_help(ToxWindow *self, Tox *m, int argc, char **argv)