mirror of https://github.com/xzeldon/htop.git
Merge branch 'config_versions' of fasterit/htop
This commit is contained in:
commit
6d10736a64
12
Settings.c
12
Settings.c
|
@ -167,7 +167,15 @@ static bool Settings_read(Settings* this, const char* fileName, unsigned int ini
|
||||||
String_freeArray(option);
|
String_freeArray(option);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (String_eq(option[0], "fields")) {
|
if (String_eq(option[0], "config_reader_min_version")) {
|
||||||
|
this->config_version = atoi(option[1]);
|
||||||
|
if (this->config_version > CONFIG_READER_MIN_VERSION) {
|
||||||
|
// the version of the config file on disk is newer than what we can read
|
||||||
|
fprintf(stderr, "WARNING: %s specifies configuration format version v%d, but this %s binary supports up to v%d.", fileName, this->config_version, PACKAGE, CONFIG_READER_MIN_VERSION);
|
||||||
|
fprintf(stderr, " The configuration version will be downgraded to v%d when %s exits.\n", CONFIG_READER_MIN_VERSION, PACKAGE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else if (String_eq(option[0], "fields")) {
|
||||||
Settings_readFields(this, option[1]);
|
Settings_readFields(this, option[1]);
|
||||||
} else if (String_eq(option[0], "sort_key")) {
|
} else if (String_eq(option[0], "sort_key")) {
|
||||||
// This "+1" is for compatibility with the older enum format.
|
// This "+1" is for compatibility with the older enum format.
|
||||||
|
@ -326,6 +334,8 @@ int Settings_write(const Settings* this, bool onCrash) {
|
||||||
fprintf(fd, "# Beware! This file is rewritten by htop when settings are changed in the interface.\n");
|
fprintf(fd, "# Beware! This file is rewritten by htop when settings are changed in the interface.\n");
|
||||||
fprintf(fd, "# The parser is also very primitive, and not human-friendly.\n");
|
fprintf(fd, "# The parser is also very primitive, and not human-friendly.\n");
|
||||||
}
|
}
|
||||||
|
fprintf(fd, "htop_version=%s\n", VERSION);
|
||||||
|
fprintf(fd, "config_reader_min_version=%d\n", CONFIG_READER_MIN_VERSION);
|
||||||
writeFields(fd, this->fields, this->dynamicColumns, "fields");
|
writeFields(fd, this->fields, this->dynamicColumns, "fields");
|
||||||
// This "-1" is for compatibility with the older enum format.
|
// This "-1" is for compatibility with the older enum format.
|
||||||
fprintf(fd, "sort_key=%d\n", (int) this->sortKey - 1);
|
fprintf(fd, "sort_key=%d\n", (int) this->sortKey - 1);
|
||||||
|
|
|
@ -18,6 +18,8 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
#define DEFAULT_DELAY 15
|
#define DEFAULT_DELAY 15
|
||||||
|
|
||||||
|
#define CONFIG_READER_MIN_VERSION 2
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int len;
|
int len;
|
||||||
char** names;
|
char** names;
|
||||||
|
@ -26,6 +28,7 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct Settings_ {
|
typedef struct Settings_ {
|
||||||
char* filename;
|
char* filename;
|
||||||
|
int config_version;
|
||||||
MeterColumnSettings columns[2];
|
MeterColumnSettings columns[2];
|
||||||
Hashtable* dynamicColumns;
|
Hashtable* dynamicColumns;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue