config: save disabled options also
authornotaz <notasas@gmail.com>
Sat, 6 Jan 2024 22:39:44 +0000 (00:39 +0200)
committeririxxxx <31696370+irixxxx@users.noreply.github.com>
Sun, 7 Jan 2024 10:32:53 +0000 (11:32 +0100)
Pandora uses disabled menu options to store the layer position
(mee_range_hide() menu entries) and actually modifies them using
a special menu handler.

platform/common/config_file.c

index 260fd79..d5f583d 100644 (file)
@@ -118,7 +118,7 @@ int config_write(const char *fname)
        for (me = me_list_get_first(); me != NULL; me = me_list_get_next())
        {
                int dummy;
-               if (!me->need_to_save || !me->enabled)
+               if (!me->need_to_save)
                        continue;
                if (me->name == NULL || me->name[0] == 0)
                        continue;
@@ -129,8 +129,10 @@ int config_write(const char *fname)
                else if (me->beh == MB_OPT_RANGE || me->beh == MB_OPT_CUSTRANGE) {
                        fprintf(fn, "%s = %i" NL, me->name, *(int *)me->var);
                }
-               else if (me->beh == MB_OPT_ENUM && me->data != NULL) {
+               else if (me->beh == MB_OPT_ENUM) {
                        const char **names = (const char **)me->data;
+                       if (names == NULL)
+                               continue;
                        for (t = 0; names[t] != NULL; t++) {
                                if (*(int *)me->var == t) {
                                        strncpy(line, names[t], sizeof(line)-1);
@@ -145,7 +147,8 @@ int config_write(const char *fname)
                        goto write_line;
                }
                else
-                       lprintf("config: unhandled write: %i\n", me->id);
+                       lprintf("config: unhandled write: '%s' id %d behavior %d\n",
+                               me->name, me->id, me->beh);
                continue;
 
 write_line: