diff options
Diffstat (limited to 'extra/config/confdata.c')
-rw-r--r-- | extra/config/confdata.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/extra/config/confdata.c b/extra/config/confdata.c index 9e413b4a3..cb8a0e75d 100644 --- a/extra/config/confdata.c +++ b/extra/config/confdata.c @@ -7,7 +7,6 @@ */ #include <ctype.h> -#include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -17,7 +16,6 @@ #include "lkc.h" const char conf_def_filename[] = ".config"; -char conf_filename[PATH_MAX+1]; const char conf_defname[] = "extra/Configs/Config.$TARGET_ARCH.default"; @@ -71,8 +69,6 @@ int conf_read(const char *name) if (name) { in = fopen(name, "r"); - if (in) - strcpy(conf_filename, name); } else { const char **names = conf_confnames; while ((name = *names++)) { @@ -91,16 +87,17 @@ int conf_read(const char *name) return 1; for_all_symbols(i, sym) { - sym->flags |= SYMBOL_NEW; + sym->flags |= SYMBOL_NEW | SYMBOL_CHANGED; + sym->flags &= ~SYMBOL_VALID; switch (sym->type) { case S_INT: case S_HEX: case S_STRING: - if (S_VAL(sym->def)) { + if (S_VAL(sym->def)) free(S_VAL(sym->def)); - S_VAL(sym->def) = NULL; - } default: + S_VAL(sym->def) = NULL; + S_TRI(sym->def) = no; ; } } @@ -372,7 +369,6 @@ int conf_write(const char *name) rename(name, oldname); if (rename(".tmpconfig", name)) return 1; - strcpy(conf_filename, name); sym_change_count = 0; |