summaryrefslogtreecommitdiff
path: root/apps/plugins/lib/configfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib/configfile.c')
-rw-r--r--apps/plugins/lib/configfile.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/apps/plugins/lib/configfile.c b/apps/plugins/lib/configfile.c
index 419109f904..063efdde2e 100644
--- a/apps/plugins/lib/configfile.c
+++ b/apps/plugins/lib/configfile.c
@@ -59,15 +59,21 @@ int configfile_save(const char *filename, struct configdata *cfg,
59 /* pre-allocate 10 bytes for INT */ 59 /* pre-allocate 10 bytes for INT */
60 rb->fdprintf(fd, "%s: %10d\n", 60 rb->fdprintf(fd, "%s: %10d\n",
61 cfg[i].name, 61 cfg[i].name,
62 *cfg[i].val); 62 *cfg[i].int_p);
63 break;
64
65 case TYPE_BOOL:
66 rb->fdprintf(fd, "%s: 10%d\n",
67 cfg[i].name,
68 (int)*cfg[i].bool_p);
63 break; 69 break;
64 70
65 case TYPE_ENUM: 71 case TYPE_ENUM:
66 rb->fdprintf(fd, "%s: %s\n", 72 rb->fdprintf(fd, "%s: %s\n",
67 cfg[i].name, 73 cfg[i].name,
68 cfg[i].values[*cfg[i].val]); 74 cfg[i].values[*cfg[i].int_p]);
69 break; 75 break;
70 76
71 case TYPE_STRING: 77 case TYPE_STRING:
72 rb->fdprintf(fd, "%s: %s\n", 78 rb->fdprintf(fd, "%s: %s\n",
73 cfg[i].name, 79 cfg[i].name,
@@ -116,17 +122,22 @@ int configfile_load(const char *filename, struct configdata *cfg,
116 tmp = rb->atoi(val); 122 tmp = rb->atoi(val);
117 /* Only set it if it's within range */ 123 /* Only set it if it's within range */
118 if(tmp >= cfg[i].min && tmp <= cfg[i].max) 124 if(tmp >= cfg[i].min && tmp <= cfg[i].max)
119 *cfg[i].val = tmp; 125 *cfg[i].int_p = tmp;
120 break; 126 break;
121 127
128 case TYPE_BOOL:
129 tmp = rb->atoi(val);
130 *cfg[i].bool_p = (bool)tmp;
131 break;
132
122 case TYPE_ENUM: 133 case TYPE_ENUM:
123 for(j = 0;j < cfg[i].max;j++) { 134 for(j = 0;j < cfg[i].max;j++) {
124 if(!rb->strcmp(cfg[i].values[j], val)) { 135 if(!rb->strcmp(cfg[i].values[j], val)) {
125 *cfg[i].val = j; 136 *cfg[i].int_p = j;
126 } 137 }
127 } 138 }
128 break; 139 break;
129 140
130 case TYPE_STRING: 141 case TYPE_STRING:
131 rb->strncpy(cfg[i].string, val, cfg[i].max); 142 rb->strncpy(cfg[i].string, val, cfg[i].max);
132 break; 143 break;