diff --git a/src/config.c b/src/config.c index 4f17864..65799c0 100644 --- a/src/config.c +++ b/src/config.c @@ -1178,20 +1178,21 @@ void add_entry(char *key, char *value) gboolean config_read_file(const char *path) { - FILE *fp; - char line[512]; - char *key, *value; - - if ((fp = fopen(path, "r")) == NULL) + FILE *fp = fopen(path, "r"); + if (!fp) return FALSE; - while (fgets(line, sizeof(line), fp) != NULL) { + char* line = NULL; + size_t line_size = 0; + while (getline(&line, &line_size, fp) >= 0) { + char *key, *value; if (parse_line(line, &key, &value)) { add_entry(key, value); free(key); free(value); } } + free(line); fclose(fp); if (!read_panel_position) { diff --git a/src/execplugin/execplugin.c b/src/execplugin/execplugin.c index f8ba47a..db3b79e 100644 --- a/src/execplugin/execplugin.c +++ b/src/execplugin/execplugin.c @@ -643,6 +643,7 @@ void execp_timer_callback(void *arg) close(pipe_fd[0]); return; } else if (child == 0) { + fprintf(stderr, "Executing: %s\n", execp->backend->command); // We are in the child close(pipe_fd[0]); dup2(pipe_fd[1], 1); // 1 is stdout diff --git a/src/tint2conf/properties_rw.c b/src/tint2conf/properties_rw.c index 1b1902a..5559987 100644 --- a/src/tint2conf/properties_rw.c +++ b/src/tint2conf/properties_rw.c @@ -38,13 +38,6 @@ void config_read_file(const char *path) background_create_new(); gradient_create_new(GRADIENT_CONFIG_VERTICAL); - FILE *fp; - char line[512]; - char *key, *value; - - if ((fp = fopen(path, "r")) == NULL) - return; - config_has_panel_items = 0; config_has_battery = 0; config_battery_enabled = 0; @@ -54,14 +47,21 @@ void config_read_file(const char *path) no_items_systray_enabled = 0; no_items_battery_enabled = 0; - while (fgets(line, sizeof(line), fp) != NULL) { - if (parse_line(line, &key, &value)) { - add_entry(key, value); - free(key); - free(value); + FILE *fp = fopen(path, "r"); + if (fp) { + char* line = NULL; + size_t line_size = 0; + while (getline(&line, &line_size, fp) >= 0) { + char *key, *value; + if (parse_line(line, &key, &value)) { + add_entry(key, value); + free(key); + free(value); + } } + free(line); + fclose(fp); } - fclose(fp); finalize_gradient(); finalize_bg();