From 639ccbf16cadb327de67e6e4c2295802e83cc27b Mon Sep 17 00:00:00 2001 From: o9000 Date: Sun, 12 Mar 2017 17:41:13 +0100 Subject: [PATCH] Allow long lines in tint2conf --- src/config.c | 13 +++++++------ src/execplugin/execplugin.c | 1 + src/tint2conf/properties_rw.c | 26 +++++++++++++------------- 3 files changed, 21 insertions(+), 19 deletions(-) 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();