X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fmenu.c;h=2baebe346de9528d3adc3f89fc1d7bddde0377a4;hb=42bc2cb9fd5367ea805f291c72c81e67fbcabde5;hp=c8cec26c25354658c0879abe56df322e5087b626;hpb=4d11907abfeb7a1de0080a8c7a7e67ce4fa231db;p=carl9170fw.git diff --git a/config/menu.c b/config/menu.c index c8cec26..2baebe3 100644 --- a/config/menu.c +++ b/config/menu.c @@ -110,7 +110,7 @@ static struct expr *rewrite_m(struct expr *e) void menu_add_dep(struct expr *dep) { - current_entry->dep = expr_alloc_and(current_entry->dep, rewrite_m(dep)); + current_entry->dep = expr_alloc_and(current_entry->dep, dep); } void menu_set_type(int type) @@ -135,7 +135,7 @@ static struct property *menu_add_prop(enum prop_type type, char *prompt, struct prop->menu = current_entry; prop->expr = expr; - prop->visible.expr = rewrite_m(dep); + prop->visible.expr = dep; if (prompt) { if (isspace(*prompt)) { @@ -340,7 +340,8 @@ void menu_finalize(struct menu *parent) * Propagate parent dependencies to the child menu * node, also rewriting and simplifying expressions */ - basedep = expr_transform(menu->dep); + basedep = rewrite_m(menu->dep); + basedep = expr_transform(basedep); basedep = expr_alloc_and(expr_copy(parentdep), basedep); basedep = expr_eliminate_dups(basedep); menu->dep = basedep; @@ -383,7 +384,8 @@ void menu_finalize(struct menu *parent) * property's condition, rewriting and * simplifying expressions at the same time */ - dep = expr_transform(prop->visible.expr); + dep = rewrite_m(prop->visible.expr); + dep = expr_transform(dep); dep = expr_alloc_and(expr_copy(basedep), dep); dep = expr_eliminate_dups(dep); if (menu->sym && menu->sym->type != S_TRISTATE)