summaryrefslogtreecommitdiff
path: root/extra/config/confdata.c
diff options
context:
space:
mode:
Diffstat (limited to 'extra/config/confdata.c')
-rw-r--r--extra/config/confdata.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/extra/config/confdata.c b/extra/config/confdata.c
index 78e9c553c..d3df3ab34 100644
--- a/extra/config/confdata.c
+++ b/extra/config/confdata.c
@@ -148,17 +148,24 @@ int conf_read(const char *name)
break;
}
switch (sym->type) {
- case S_TRISTATE:
- if (p[0] == 'm')
- sym->def = symbol_mod.curr;
- else
+ case S_TRISTATE:
+ if (p[0] == 'm') {
+ S_TRI(sym->def) = mod;
+ sym->flags &= ~SYMBOL_NEW;
+ break;
+ }
case S_BOOLEAN:
- if (p[0] == 'n')
- sym->def = symbol_no.curr;
- else
- sym->def = symbol_yes.curr;
- sym->flags &= ~SYMBOL_NEW;
- break;
+ if (p[0] == 'y') {
+ S_TRI(sym->def) = yes;
+ sym->flags &= ~SYMBOL_NEW;
+ break;
+ }
+ if (p[0] == 'n') {
+ S_TRI(sym->def) = no;
+ sym->flags &= ~SYMBOL_NEW;
+ break;
+ }
+ break;
case S_STRING:
if (*p++ != '"')
break;