mirror of https://github.com/xzeldon/htop.git
Store .sort_key as a string
This commit is contained in:
parent
4148717cb9
commit
23ce25898e
14
Settings.c
14
Settings.c
|
@ -209,16 +209,21 @@ static void Settings_defaultMeters(Settings* this) {
|
||||||
this->meterColumns[1].modes[r++] = TEXT_METERMODE;
|
this->meterColumns[1].modes[r++] = TEXT_METERMODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char* toFieldName(int i) {
|
||||||
|
return Process_fields[i].name;
|
||||||
|
}
|
||||||
|
|
||||||
static int toFieldIndex(const char* str) {
|
static int toFieldIndex(const char* str) {
|
||||||
if (isdigit(str[0])) {
|
if (isdigit(str[0])) {
|
||||||
// This "+1" is for compatibility with the older enum format.
|
// This "+1" is for compatibility with the older enum format.
|
||||||
int id = atoi(str) + 1;
|
int id = atoi(str) + 1;
|
||||||
if (Process_fields[id].name && id < Platform_numberOfFields) {
|
if (id < Platform_numberOfFields && toFieldName(id)) {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int p = 1; p < LAST_PROCESSFIELD; p++) {
|
for (int p = 1; p < LAST_PROCESSFIELD; p++) {
|
||||||
if (Process_fields[p].name && strcmp(Process_fields[p].name, str) == 0) {
|
const char* pName = toFieldName(p);
|
||||||
|
if (pName && strcmp(pName, str) == 0) {
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -377,7 +382,7 @@ static void writeFields(FILE* fd, ProcessField* fields, bool byName) {
|
||||||
const char* sep = "";
|
const char* sep = "";
|
||||||
for (int i = 0; fields[i]; i++) {
|
for (int i = 0; fields[i]; i++) {
|
||||||
if (byName) {
|
if (byName) {
|
||||||
fprintf(fd, "%s%s", sep, Process_fields[fields[i]].name);
|
fprintf(fd, "%s%s", sep, toFieldName(fields[i]));
|
||||||
} else {
|
} else {
|
||||||
// This " - 1" is for compatibility with the older enum format.
|
// This " - 1" is for compatibility with the older enum format.
|
||||||
fprintf(fd, "%s%d", sep, (int) fields[i] - 1);
|
fprintf(fd, "%s%d", sep, (int) fields[i] - 1);
|
||||||
|
@ -446,8 +451,7 @@ bool Settings_write(Settings* this) {
|
||||||
fprintf(fd, "screen:%s=", ss->name);
|
fprintf(fd, "screen:%s=", ss->name);
|
||||||
writeFields(fd, ss->fields, true);
|
writeFields(fd, ss->fields, true);
|
||||||
fprintf(fd, ".tree_view=%d\n", (int) ss->treeView);
|
fprintf(fd, ".tree_view=%d\n", (int) ss->treeView);
|
||||||
// This "-1" is for compatibility with the older enum format.
|
fprintf(fd, ".sort_key=%s\n", toFieldName(ss->sortKey));
|
||||||
fprintf(fd, ".sort_key=%d\n", (int) ss->sortKey-1);
|
|
||||||
fprintf(fd, ".sort_direction=%d\n", (int) ss->direction);
|
fprintf(fd, ".sort_direction=%d\n", (int) ss->direction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue