|
@@ -1083,7 +1083,7 @@ static void randomize_choice_values(struct symbol *csym)
|
|
|
csym->flags &= ~(SYMBOL_VALID);
|
|
|
}
|
|
|
|
|
|
-static void set_all_choice_values(struct symbol *csym)
|
|
|
+void set_all_choice_values(struct symbol *csym)
|
|
|
{
|
|
|
struct property *prop;
|
|
|
struct symbol *sym;
|
|
@@ -1100,7 +1100,7 @@ static void set_all_choice_values(struct symbol *csym)
|
|
|
}
|
|
|
csym->flags |= SYMBOL_DEF_USER;
|
|
|
/* clear VALID to get value calculated */
|
|
|
- csym->flags &= ~(SYMBOL_VALID);
|
|
|
+ csym->flags &= ~(SYMBOL_VALID | SYMBOL_NEED_SET_CHOICE_VALUES);
|
|
|
}
|
|
|
|
|
|
void conf_set_all_new_symbols(enum conf_def_mode mode)
|
|
@@ -1202,6 +1202,14 @@ void conf_set_all_new_symbols(enum conf_def_mode mode)
|
|
|
* selected in a choice block and we set it to yes,
|
|
|
* and the rest to no.
|
|
|
*/
|
|
|
+ if (mode != def_random) {
|
|
|
+ for_all_symbols(i, csym) {
|
|
|
+ if ((sym_is_choice(csym) && !sym_has_value(csym)) ||
|
|
|
+ sym_is_choice_value(csym))
|
|
|
+ csym->flags |= SYMBOL_NEED_SET_CHOICE_VALUES;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
for_all_symbols(i, csym) {
|
|
|
if (sym_has_value(csym) || !sym_is_choice(csym))
|
|
|
continue;
|
|
@@ -1209,7 +1217,5 @@ void conf_set_all_new_symbols(enum conf_def_mode mode)
|
|
|
sym_calc_value(csym);
|
|
|
if (mode == def_random)
|
|
|
randomize_choice_values(csym);
|
|
|
- else
|
|
|
- set_all_choice_values(csym);
|
|
|
}
|
|
|
}
|