diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-03-04 16:02:41 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-03-04 16:02:41 +0000 |
commit | d14f611eb1f7dc25905f639366e2604444aa1804 (patch) | |
tree | cbc248164e3d16d1f736a51a8166e70f127086fe /scripts/config/mconf.c | |
parent | 07cb246bd750bf7798b2debf609d304e8d48fba5 (diff) | |
download | upstream-d14f611eb1f7dc25905f639366e2604444aa1804.tar.gz upstream-d14f611eb1f7dc25905f639366e2604444aa1804.tar.bz2 upstream-d14f611eb1f7dc25905f639366e2604444aa1804.zip |
disable the automatic config reset if 'Advanced configuration options' is selected
SVN-Revision: 6506
Diffstat (limited to 'scripts/config/mconf.c')
-rw-r--r-- | scripts/config/mconf.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/scripts/config/mconf.c b/scripts/config/mconf.c index 083b23efa3..74036174fc 100644 --- a/scripts/config/mconf.c +++ b/scripts/config/mconf.c @@ -888,6 +888,7 @@ static void conf_choice(struct menu *menu) const char *prompt = menu_get_prompt(menu); struct menu *child; struct symbol *active; + struct property *prop; int stat; active = sym_get_choice_value(menu->sym); @@ -920,9 +921,13 @@ static void conf_choice(struct menu *menu) case 0: if (sscanf(input_buf, "%p", &child) != 1) break; - if ((menu->sym->flags & SYMBOL_RESET) && - sym_get_tristate_value(child->sym) != yes) - conf_reset(); + + if (sym_get_tristate_value(child->sym) != yes) { + for_all_properties(menu->sym, prop, P_RESET) { + if (expr_calc_value(prop->visible.expr) != no) + conf_reset(); + } + } sym_set_tristate_value(child->sym, yes); return; case 1: |