diff options
author | Daniel Lange <DLange@git.local> | 2016-04-11 13:00:20 +0200 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2016-04-11 13:00:20 +0200 |
commit | ea859f50d9438bc61ae96721a4d255b49de78653 (patch) | |
tree | bfb52a5f403ad1e86c562b2f4d608d1268fe8fcf /Settings.c | |
parent | 266ab52b3a741a58fb17c48b0f7939d7c5d266de (diff) | |
download | debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.tar.gz debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.tar.bz2 debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.zip |
Imported Upstream version 0.6.2upstream/0.6.2
Diffstat (limited to 'Settings.c')
-rw-r--r-- | Settings.c | 39 |
1 files changed, 24 insertions, 15 deletions
@@ -1,6 +1,6 @@ /* htop - Settings.c -(C) 2004,2005 Hisham H. Muhammad +(C) 2004-2006 Hisham H. Muhammad Released under the GNU GPL, see the COPYING file in the source distribution for its full text. */ @@ -32,9 +32,15 @@ Settings* Settings_new(ProcessList* pl, Header* header) { this->pl = pl; this->header = header; char* home; + char* rcfile; home = getenv("HOME_ETC"); if (!home) home = getenv("HOME"); - this->userSettings = String_cat(home, "/.htoprc"); + if (!home) home = ""; + rcfile = getenv("HOMERC"); + if (!rcfile) + this->userSettings = String_cat(home, "/.htoprc"); + else + this->userSettings = String_copy(rcfile); this->colorScheme = 0; this->changed = false; this->delay = DEFAULT_DELAY; @@ -142,17 +148,17 @@ bool Settings_read(Settings* this, char* fileName) { if (this->colorScheme < 0) this->colorScheme = 0; if (this->colorScheme > 5) this->colorScheme = 5; } else if (String_eq(option[0], "left_meters")) { - Settings_readMeters(this, option[1], LEFT_HEADER); - readMeters = true; + Settings_readMeters(this, option[1], LEFT_HEADER); + readMeters = true; } else if (String_eq(option[0], "right_meters")) { - Settings_readMeters(this, option[1], RIGHT_HEADER); - readMeters = true; + Settings_readMeters(this, option[1], RIGHT_HEADER); + readMeters = true; } else if (String_eq(option[0], "left_meter_modes")) { - Settings_readMeterModes(this, option[1], LEFT_HEADER); - readMeters = true; + Settings_readMeterModes(this, option[1], LEFT_HEADER); + readMeters = true; } else if (String_eq(option[0], "right_meter_modes")) { - Settings_readMeterModes(this, option[1], RIGHT_HEADER); - readMeters = true; + Settings_readMeterModes(this, option[1], RIGHT_HEADER); + readMeters = true; } String_freeArray(option); } @@ -195,7 +201,9 @@ bool Settings_write(Settings* this) { fprintf(fd, "delay=%d\n", (int) this->delay); fprintf(fd, "left_meters="); for (int i = 0; i < Header_size(this->header, LEFT_HEADER); i++) { - fprintf(fd, "%s ", Header_readMeterName(this->header, i, LEFT_HEADER)); + char* name = Header_readMeterName(this->header, i, LEFT_HEADER); + fprintf(fd, "%s ", name); + free(name); } fprintf(fd, "\n"); fprintf(fd, "left_meter_modes="); @@ -203,14 +211,15 @@ bool Settings_write(Settings* this) { fprintf(fd, "%d ", Header_readMeterMode(this->header, i, LEFT_HEADER)); fprintf(fd, "\n"); fprintf(fd, "right_meters="); - for (int i = 0; i < Header_size(this->header, RIGHT_HEADER); i++) - fprintf(fd, "%s ", Header_readMeterName(this->header, i, RIGHT_HEADER)); + for (int i = 0; i < Header_size(this->header, RIGHT_HEADER); i++) { + char* name = Header_readMeterName(this->header, i, RIGHT_HEADER); + fprintf(fd, "%s ", name); + free(name); + } fprintf(fd, "\n"); fprintf(fd, "right_meter_modes="); for (int i = 0; i < Header_size(this->header, RIGHT_HEADER); i++) fprintf(fd, "%d ", Header_readMeterMode(this->header, i, RIGHT_HEADER)); - fprintf(fd, "\n"); - fclose(fd); return true; } |