diff --git a/settings.c b/settings.c --- a/settings.c +++ b/settings.c @@ -615,6 +615,7 @@ static void ini_load_settings(IniFile *i const SaveLoad *sld = &sd->save; if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue; + if (sd->desc.name == NULL) continue; // XXX - wtf is this?? (group override?) s = strchr(sdb->name, '.'); @@ -682,6 +683,7 @@ static void ini_save_settings(IniFile *i * file, just continue with the next setting */ if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue; if (sld->conv & SLF_CONFIG_NO) continue; + if (sd->desc.name == NULL) continue; // XXX - wtf is this?? (group override?) s = strchr(sdb->name, '.'); @@ -879,6 +881,9 @@ static void ini_save_setting_list(IniFil #define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, proc)\ SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, 0, SL_MAX_VERSION) +#define SDTG_CONDNULL(length, from, to)\ + {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLEG_CONDNULL(length, from, to)} + #define SDTG_END() {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLEG_END()} /* Macros for various objects to go in the configuration file. @@ -925,6 +930,9 @@ static void ini_save_setting_list(IniFil #define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc)\ SDT_CONDMMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, full, str, proc) +#define SDT_CONDNULL(length, from, to)\ + {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLE_CONDNULL(length, from, to)} + #define SDT_END() {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLE_END()} /* Shortcuts for macros below. Logically if we don't save the value