From 031c3bb95f3d0a74d985286068baa6dd4d29d83f Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 11 Apr 2016 13:00:18 +0200 Subject: Imported Upstream version 0.5.3 --- Settings.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'Settings.c') diff --git a/Settings.c b/Settings.c index 5e9bbfd..9172d11 100644 --- a/Settings.c +++ b/Settings.c @@ -26,13 +26,20 @@ Settings* Settings_new(ProcessList* pl, Header* header) { Settings* this = malloc(sizeof(Settings)); this->pl = pl; this->header = header; - // TODO: how to get SYSCONFDIR correctly through Autoconf? - // char* systemSettings = String_cat(SYSCONFDIR, "/htoprc"); - // Settings_read(this, systemSettings); - char* home = getenv("HOME"); + char* home; + home = getenv("HOME_ETC"); + if (!home) home = getenv("HOME"); this->userSettings = String_cat(home, "/.htoprc"); - Settings_read(this, this->userSettings); - // free(systemSettings); + bool ok = Settings_read(this, this->userSettings); + if (!ok) { + // TODO: how to get SYSCONFDIR correctly through Autoconf? + char* systemSettings = String_cat(SYSCONFDIR, "/htoprc"); + ok = Settings_read(this, systemSettings); + free(systemSettings); + if (!ok) { + Header_defaultMeters(this->header); + } + } return this; } @@ -72,7 +79,6 @@ bool Settings_read(Settings* this, char* fileName) { FILE* fd; fd = fopen(fileName, "r"); if (fd == NULL) { - Header_defaultMeters(this->header); return false; } const int maxLine = 512; @@ -176,8 +182,10 @@ bool Settings_write(Settings* this) { fprintf(fd, "tree_view=%d\n", (int) this->pl->treeView); fprintf(fd, "header_margin=%d\n", (int) this->header->margin); fprintf(fd, "left_meters="); - for (int i = 0; i < Header_size(this->header, LEFT_HEADER); i++) + for (int i = 0; i < Header_size(this->header, LEFT_HEADER); i++) { +fprintf(stderr, "Field #%d\n", i); fprintf(fd, "%s ", Header_readMeterName(this->header, i, LEFT_HEADER)); + } fprintf(fd, "\n"); fprintf(fd, "left_meter_modes="); for (int i = 0; i < Header_size(this->header, LEFT_HEADER); i++) -- cgit v1.2.3