X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=config%2Fsymbol.c;h=22a3c400fc41119c8c8f4197c3dfcdde87b0a882;hp=071f00c3046e69e77112a4e5cf56d4f686fc101f;hb=5d731b07c48892c5384e5c87e192c3385ce2fb90;hpb=bb8077d7e3a3b8cab3fb3c3065c99fce9aeed2bc diff --git a/config/symbol.c b/config/symbol.c index 071f00c..22a3c40 100644 --- a/config/symbol.c +++ b/config/symbol.c @@ -262,11 +262,18 @@ static struct symbol *sym_calc_choice(struct symbol *sym) struct symbol *def_sym; struct property *prop; struct expr *e; + int flags; /* first calculate all choice values' visibilities */ + flags = sym->flags; prop = sym_get_choice_prop(sym); - expr_list_for_each_sym(prop->expr, e, def_sym) + expr_list_for_each_sym(prop->expr, e, def_sym) { sym_calc_visibility(def_sym); + if (def_sym->visible != no) + flags &= def_sym->flags; + } + + sym->flags &= flags | ~SYMBOL_DEF_USER; /* is the user choice visible? */ def_sym = sym->def[S_DEF_USER].val;