add 'reset to defaults' to menuconfig

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4080 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2006-06-25 20:06:59 +00:00
parent b8852bf072
commit eaf2344f8d
3 changed files with 29 additions and 0 deletions

View File

@ -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;

View File

@ -2,6 +2,7 @@
/* confdata.c */
P(conf_parse,void,(const char *name));
P(conf_read,int,(const char *name));
P(conf_reset,void,(void));
P(conf_read_simple,int,(const char *name));
P(conf_write,int,(const char *name));

View File

@ -737,6 +737,8 @@ static void conf(struct menu *menu)
if (menu == &rootmenu) {
cprint(":");
cprint("--- ");
cprint("D");
cprint(_(" Reset to defaults"));
cprint("L");
cprint(_(" Load an Alternate Configuration File"));
cprint("S");
@ -783,6 +785,9 @@ static void conf(struct menu *menu)
case 's':
conf_string(submenu);
break;
case 'D':
conf_reset();
break;
case 'L':
conf_load();
break;