mirror of https://github.com/xzeldon/htop.git
store cpuCount in an attribute
This commit is contained in:
parent
f4f6d54ffd
commit
f1e8a074f2
20
Settings.c
20
Settings.c
|
@ -39,6 +39,7 @@ typedef struct Settings_ {
|
||||||
int colorScheme;
|
int colorScheme;
|
||||||
int delay;
|
int delay;
|
||||||
|
|
||||||
|
int cpuCount;
|
||||||
int direction;
|
int direction;
|
||||||
ProcessField sortKey;
|
ProcessField sortKey;
|
||||||
|
|
||||||
|
@ -102,9 +103,9 @@ static void Settings_readMeterModes(Settings* this, char* line, int column) {
|
||||||
this->columns[column].modes = modes;
|
this->columns[column].modes = modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Settings_defaultMeters(Settings* this, int cpuCount) {
|
static void Settings_defaultMeters(Settings* this) {
|
||||||
int sizes[] = { 3, 3 };
|
int sizes[] = { 3, 3 };
|
||||||
if (cpuCount > 4) {
|
if (this->cpuCount > 4) {
|
||||||
sizes[1]++;
|
sizes[1]++;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
|
@ -114,10 +115,10 @@ static void Settings_defaultMeters(Settings* this, int cpuCount) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int r = 0;
|
int r = 0;
|
||||||
if (cpuCount > 8) {
|
if (this->cpuCount > 8) {
|
||||||
this->columns[0].names[0] = strdup("LeftCPUs2");
|
this->columns[0].names[0] = strdup("LeftCPUs2");
|
||||||
this->columns[1].names[r++] = strdup("RightCPUs2");
|
this->columns[1].names[r++] = strdup("RightCPUs2");
|
||||||
} else if (cpuCount > 4) {
|
} else if (this->cpuCount > 4) {
|
||||||
this->columns[0].names[0] = strdup("LeftCPUs");
|
this->columns[0].names[0] = strdup("LeftCPUs");
|
||||||
this->columns[1].names[r++] = strdup("RightCPUs");
|
this->columns[1].names[r++] = strdup("RightCPUs");
|
||||||
} else {
|
} else {
|
||||||
|
@ -151,7 +152,7 @@ static void readFields(ProcessField* fields, int* flags, const char* line) {
|
||||||
String_freeArray(ids);
|
String_freeArray(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool Settings_read(Settings* this, const char* fileName, int cpuCount) {
|
static bool Settings_read(Settings* this, const char* fileName) {
|
||||||
FILE* fd = fopen(fileName, "r");
|
FILE* fd = fopen(fileName, "r");
|
||||||
if (!fd)
|
if (!fd)
|
||||||
return false;
|
return false;
|
||||||
|
@ -226,7 +227,7 @@ static bool Settings_read(Settings* this, const char* fileName, int cpuCount) {
|
||||||
}
|
}
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
if (!readMeters) {
|
if (!readMeters) {
|
||||||
Settings_defaultMeters(this, cpuCount);
|
Settings_defaultMeters(this);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -307,6 +308,7 @@ Settings* Settings_new(int cpuCount) {
|
||||||
this->detailedCPUTime = false;
|
this->detailedCPUTime = false;
|
||||||
this->countCPUsFromZero = false;
|
this->countCPUsFromZero = false;
|
||||||
this->updateProcessNames = false;
|
this->updateProcessNames = false;
|
||||||
|
this->cpuCount = cpuCount;
|
||||||
|
|
||||||
this->fields = calloc(Platform_numberOfFields+1, sizeof(ProcessField));
|
this->fields = calloc(Platform_numberOfFields+1, sizeof(ProcessField));
|
||||||
// TODO: turn 'fields' into a Vector,
|
// TODO: turn 'fields' into a Vector,
|
||||||
|
@ -354,7 +356,7 @@ Settings* Settings_new(int cpuCount) {
|
||||||
this->colorScheme = 0;
|
this->colorScheme = 0;
|
||||||
this->changed = false;
|
this->changed = false;
|
||||||
this->delay = DEFAULT_DELAY;
|
this->delay = DEFAULT_DELAY;
|
||||||
bool ok = Settings_read(this, legacyDotfile ? legacyDotfile : this->filename, cpuCount);
|
bool ok = Settings_read(this, legacyDotfile ? legacyDotfile : this->filename);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
if (legacyDotfile) {
|
if (legacyDotfile) {
|
||||||
// Transition to new location and delete old configuration file
|
// Transition to new location and delete old configuration file
|
||||||
|
@ -365,10 +367,10 @@ Settings* Settings_new(int cpuCount) {
|
||||||
this->changed = true;
|
this->changed = true;
|
||||||
// TODO: how to get SYSCONFDIR correctly through Autoconf?
|
// TODO: how to get SYSCONFDIR correctly through Autoconf?
|
||||||
char* systemSettings = String_cat(SYSCONFDIR, "/htoprc");
|
char* systemSettings = String_cat(SYSCONFDIR, "/htoprc");
|
||||||
ok = Settings_read(this, systemSettings, cpuCount);
|
ok = Settings_read(this, systemSettings);
|
||||||
free(systemSettings);
|
free(systemSettings);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
Settings_defaultMeters(this, cpuCount);
|
Settings_defaultMeters(this);
|
||||||
this->hideKernelThreads = true;
|
this->hideKernelThreads = true;
|
||||||
this->highlightMegabytes = true;
|
this->highlightMegabytes = true;
|
||||||
this->highlightThreads = false;
|
this->highlightThreads = false;
|
||||||
|
|
Loading…
Reference in New Issue