summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Bakker <bart@thesoftwarecraft.com>2021-08-02 17:33:34 +0200
committerBart Bakker <bart@thesoftwarecraft.com>2021-08-02 17:33:34 +0200
commitc1c4b5a1ab0d042c0ca47e76ef8887bcd3183e96 (patch)
treef4b500e40eb6f8e81df1c1df8126054a0001753d
parented82ce6456f0f904a0ab2b346b85d7cf46df109c (diff)
Read settings after applying defaults
Default settings are used as a base and only settings specified in `htoprc` are applied on top of it. This patch removes the special case for applying some defaults when the config does not contain a `meters` key. All defauls are set before any attempt to read settings, so only keys actually present in the config file are overridden.
-rw-r--r--Settings.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/Settings.c b/Settings.c
index 1cf67395..42b2d974 100644
--- a/Settings.c
+++ b/Settings.c
@@ -131,12 +131,13 @@ static bool Settings_read(Settings* this, const char* fileName, unsigned int ini
return false;
bool didReadMeters = false;
- bool didReadFields = false;
+ bool didReadAny = false;
for (;;) {
char* line = String_readLine(fd);
if (!line) {
break;
}
+ didReadAny = true;
size_t nOptions;
char** option = String_split(line, '=', &nOptions);
free (line);
@@ -146,7 +147,6 @@ static bool Settings_read(Settings* this, const char* fileName, unsigned int ini
}
if (String_eq(option[0], "fields")) {
readFields(this->fields, &(this->flags), option[1]);
- didReadFields = true;
} else if (String_eq(option[0], "sort_key")) {
// This "+1" is for compatibility with the older enum format.
this->sortKey = atoi(option[1]) + 1;
@@ -253,7 +253,7 @@ static bool Settings_read(Settings* this, const char* fileName, unsigned int ini
if (!didReadMeters) {
Settings_defaultMeters(this, initialCpuCount);
}
- return didReadFields;
+ return didReadAny;
}
static void writeFields(FILE* fd, const ProcessField* fields, const char* name) {
@@ -370,13 +370,13 @@ Settings* Settings_new(unsigned int initialCpuCount) {
this->treeDirection = 1;
this->shadowOtherUsers = false;
this->showThreadNames = false;
- this->hideKernelThreads = false;
+ this->hideKernelThreads = true;
this->hideUserlandThreads = false;
this->treeView = false;
this->allBranchesCollapsed = false;
this->highlightBaseName = false;
this->highlightDeletedExe = true;
- this->highlightMegabytes = false;
+ this->highlightMegabytes = true;
this->detailedCPUTime = false;
this->countCPUsFromOne = false;
this->showCPUUsage = true;
@@ -394,6 +394,7 @@ Settings* Settings_new(unsigned int initialCpuCount) {
this->stripExeFromCmdline = true;
this->showMergedCommand = false;
this->hideFunctionBar = 0;
+ this->headerMargin = true;
#ifdef HAVE_LIBHWLOC
this->topologyAffinity = false;
#endif
@@ -462,17 +463,7 @@ Settings* Settings_new(unsigned int initialCpuCount) {
}
if (!ok) {
this->changed = true;
- ok = Settings_read(this, SYSCONFDIR "/htoprc", initialCpuCount);
- }
- if (!ok) {
- Settings_defaultMeters(this, initialCpuCount);
- this->hideKernelThreads = true;
- this->highlightMegabytes = true;
- this->highlightThreads = true;
- this->findCommInCmdline = true;
- this->stripExeFromCmdline = true;
- this->showMergedCommand = false;
- this->headerMargin = true;
+ Settings_read(this, SYSCONFDIR "/htoprc", initialCpuCount);
}
return this;
}

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