aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/config/mconf.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-03-04 16:02:41 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-03-04 16:02:41 +0000
commitd14f611eb1f7dc25905f639366e2604444aa1804 (patch)
treecbc248164e3d16d1f736a51a8166e70f127086fe /scripts/config/mconf.c
parent07cb246bd750bf7798b2debf609d304e8d48fba5 (diff)
downloadupstream-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.c11
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: