aboutsummaryrefslogtreecommitdiffstats
path: root/Settings.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:00:20 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:00:20 +0200
commitea859f50d9438bc61ae96721a4d255b49de78653 (patch)
treebfb52a5f403ad1e86c562b2f4d608d1268fe8fcf /Settings.c
parent266ab52b3a741a58fb17c48b0f7939d7c5d266de (diff)
downloaddebian_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.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/Settings.c b/Settings.c
index 30b5c54..91a833e 100644
--- a/Settings.c
+++ b/Settings.c
@@ -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;
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy