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)
prop->menu = current_entry;
prop->expr = expr;
- prop->visible.expr = rewrite_m(dep);
+ prop->visible.expr = dep;
if (prompt) {
if (isspace(*prompt)) {
* 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;
* 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)
}
}
+ if (sym && sym_is_choice(sym))
+ expr_free(parentdep);
+
/*
* Recursively process children in the same fashion before
* moving on
menu->parent = parent;
last_menu = menu;
}
+ expr_free(basedep);
if (last_menu) {
parent->list = parent->next;
parent->next = last_menu->next;