From 1b2ac061ec37504adbe29d3d9a7b6d7ef3dbab9e Mon Sep 17 00:00:00 2001 From: naxuroqa Date: Wed, 14 Aug 2013 19:21:36 +0200 Subject: Fix for another segfault/leak case when using -f arg --- testing/toxic/main.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'testing') diff --git a/testing/toxic/main.c b/testing/toxic/main.c index ec33c72f..53639eb2 100644 --- a/testing/toxic/main.c +++ b/testing/toxic/main.c @@ -196,17 +196,8 @@ static void load_data(Messenger *m, char *path) int main(int argc, char *argv[]) { char *user_config_dir = get_user_config_dir(); - char *DATA_FILE; - int config_err = create_user_config_dir(user_config_dir); - if(config_err) { - DATA_FILE = "data"; - } else { - DATA_FILE = malloc(strlen(user_config_dir) + strlen(CONFIGDIR) + strlen("data") + 1); - strcpy(DATA_FILE, user_config_dir); - strcat(DATA_FILE, CONFIGDIR); - strcat(DATA_FILE, "data"); - } - free(user_config_dir); + char *DATA_FILE = NULL; + int config_err = 0; /* This is broken */ int f_loadfromfile = 1; @@ -227,6 +218,19 @@ int main(int argc, char *argv[]) } } + if (DATA_FILE == NULL ) { + config_err = create_user_config_dir(user_config_dir); + if (config_err) { + DATA_FILE = strdup("data"); + } else { + DATA_FILE = malloc(strlen(user_config_dir) + strlen(CONFIGDIR) + strlen("data") + 1); + strcpy(DATA_FILE, user_config_dir); + strcat(DATA_FILE, CONFIGDIR); + strcat(DATA_FILE, "data"); + } + } + free(user_config_dir); + init_term(); Messenger *m = init_tox(); ToxWindow * prompt = init_windows(m); -- cgit v1.2.3 From aa114d2778f87180eaf946f2fd3113c53d2304bc Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Wed, 14 Aug 2013 16:02:21 -0400 Subject: small bug fixes --- testing/toxic/chat.c | 2 +- testing/toxic/main.c | 5 ++--- testing/toxic/prompt.c | 2 +- testing/toxic/windows.c | 5 +++-- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'testing') diff --git a/testing/toxic/chat.c b/testing/toxic/chat.c index e4da9484..d5edf956 100644 --- a/testing/toxic/chat.c +++ b/testing/toxic/chat.c @@ -314,7 +314,7 @@ void execute(ToxWindow *self, ChatContext *ctx, Messenger *m, char *cmd) snprintf(xx, sizeof(xx), "%02X", address[i] & 0xff); strcat(id, xx); } - wprintw(ctx->history, "Your ID: %s\n", id); + wprintw(ctx->history, "%s\n", id); } else if (strcmp(ctx->line, "/close") == 0) { diff --git a/testing/toxic/main.c b/testing/toxic/main.c index 53639eb2..d1a4be5d 100644 --- a/testing/toxic/main.c +++ b/testing/toxic/main.c @@ -45,7 +45,7 @@ static void init_term() refresh(); } -static Messenger * init_tox() +static Messenger *init_tox() { /* Init core */ Messenger *m = initMessenger(); @@ -199,7 +199,6 @@ int main(int argc, char *argv[]) char *DATA_FILE = NULL; int config_err = 0; - /* This is broken */ int f_loadfromfile = 1; int f_flag = 0; int i = 0; @@ -233,7 +232,7 @@ int main(int argc, char *argv[]) init_term(); Messenger *m = init_tox(); - ToxWindow * prompt = init_windows(m); + ToxWindow *prompt = init_windows(m); init_window_status(); if(f_loadfromfile) diff --git a/testing/toxic/prompt.c b/testing/toxic/prompt.c index fb8a5090..b84773af 100644 --- a/testing/toxic/prompt.c +++ b/testing/toxic/prompt.c @@ -238,7 +238,7 @@ void cmd_myid(ToxWindow *self, Messenger *m, char **args) snprintf(xx, sizeof(xx), "%02X", address[i] & 0xff); strcat(id, xx); } - wprintw(self->window, "Your ID: %s\n", id); + wprintw(self->window, "%s\n", id); } void cmd_nick(ToxWindow *self, Messenger *m, char **args) diff --git a/testing/toxic/windows.c b/testing/toxic/windows.c index d19392ac..aab46e99 100644 --- a/testing/toxic/windows.c +++ b/testing/toxic/windows.c @@ -159,7 +159,7 @@ void init_window_status() WINDOW_STATUS[j] = -1; } -ToxWindow * init_windows() +ToxWindow *init_windows() { w_num = 0; int n_prompt = 0; @@ -170,6 +170,7 @@ ToxWindow * init_windows() endwin(); exit(1); } + active_window = n_prompt; prompt = &windows[n_prompt]; return prompt; } @@ -217,7 +218,7 @@ void prepare_window(WINDOW *w) wresize(w, LINES-2, COLS); } -void draw_active_window(Messenger * m) +void draw_active_window(Messenger *m) { ToxWindow *a = &windows[active_window]; -- cgit v1.2.3