X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fconfdata.c;h=99664fd2de23bb15dc29dd6d1897a0dcc1a6f60a;hb=HEAD;hp=cc18bc408397812ea125d1009da576a3cd897ec7;hpb=0ae900bef52e9b911e1c262900f9532f8acbe58d;p=carl9170fw.git diff --git a/config/confdata.c b/config/confdata.c index cc18bc4..99664fd 100644 --- a/config/confdata.c +++ b/config/confdata.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -1380,7 +1381,7 @@ bool conf_set_all_new_symbols(enum conf_def_mode mode) sym_calc_value(csym); if (mode == def_random) - has_changed = randomize_choice_values(csym); + has_changed |= randomize_choice_values(csym); else { set_all_choice_values(csym); has_changed = true; @@ -1389,3 +1390,18 @@ bool conf_set_all_new_symbols(enum conf_def_mode mode) return has_changed; } + +void conf_rewrite_mod_or_yes(enum conf_def_mode mode) +{ + struct symbol *sym; + int i; + tristate old_val = (mode == def_y2m) ? yes : mod; + tristate new_val = (mode == def_y2m) ? mod : yes; + + for_all_symbols(i, sym) { + if (sym_get_type(sym) == S_TRISTATE && + sym->def[S_DEF_USER].tri == old_val) + sym->def[S_DEF_USER].tri = new_val; + } + sym_clear_all_valid(); +}