diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-06-25 20:06:59 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-06-25 20:06:59 +0000 |
commit | 6a1be2701196d69f20806067cee93a2d81d7229f (patch) | |
tree | 7efbe8442bcaf85d1535f57925a790b66b9712d6 /scripts/config/confdata.c | |
parent | 16237fb8e1df1a8344704538e4b67f02b24271f8 (diff) |
add 'reset to defaults' to menuconfig
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4080 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts/config/confdata.c')
-rw-r--r-- | scripts/config/confdata.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/config/confdata.c b/scripts/config/confdata.c index a1abdeb087..641aa48915 100644 --- a/scripts/config/confdata.c +++ b/scripts/config/confdata.c @@ -83,6 +83,29 @@ char *conf_get_default_confname(void) return name; } +void conf_reset(void) +{ + struct symbol *sym; + int i; + + for_all_symbols(i, sym) { + sym->flags |= SYMBOL_NEW | SYMBOL_CHANGED; + if (sym_is_choice(sym)) + sym->flags &= ~SYMBOL_NEW; + sym->flags &= ~SYMBOL_VALID; + switch (sym->type) { + case S_INT: + case S_HEX: + case S_STRING: + if (sym->user.val) + free(sym->user.val); + default: + sym->user.val = NULL; + sym->user.tri = no; + } + } +} + int conf_read_simple(const char *name) { FILE *in = NULL; |