Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71893
b: refs/heads/master
c: e8b8c97
h: refs/heads/master
i:
  71891: 60c5c93
v: v3
  • Loading branch information
Linus Torvalds committed Oct 20, 2007
1 parent 85b0968 commit 88ad08d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c00046c279a2521075250fad682ca0acc10d4fd7
refs/heads/master: e8b8c977734193adedf2b0f607d6252c78e86394
35 changes: 9 additions & 26 deletions trunk/scripts/kconfig/menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,23 +235,16 @@ void menu_finalize(struct menu *parent)
sym = parent->sym;
if (parent->list) {
if (sym && sym_is_choice(sym)) {
/* find out choice type */
enum symbol_type type = S_UNKNOWN;

/* find the first choice value and find out choice type */
for (menu = parent->list; menu; menu = menu->next) {
if (menu->sym && menu->sym->type != S_UNKNOWN) {
if (type == S_UNKNOWN)
type = menu->sym->type;
if (type != S_BOOLEAN)
break;
if (menu->sym->type == S_TRISTATE) {
type = S_TRISTATE;
break;
}
if (menu->sym) {
current_entry = parent;
menu_set_type(menu->sym->type);
current_entry = menu;
menu_set_type(sym->type);
break;
}
}
current_entry = parent;
menu_set_type(type);
parentdep = expr_alloc_symbol(sym);
} else if (parent->prompt)
parentdep = parent->prompt->visible.expr;
Expand All @@ -260,16 +253,7 @@ void menu_finalize(struct menu *parent)

for (menu = parent->list; menu; menu = menu->next) {
basedep = expr_transform(menu->dep);
dep = parentdep;
if (sym && sym_is_choice(sym) && menu->sym) {
enum symbol_type type = menu->sym->type;

if (type == S_UNKNOWN)
type = sym->type;
if (type != S_TRISTATE)
dep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes);
}
basedep = expr_alloc_and(expr_copy(dep), basedep);
basedep = expr_alloc_and(expr_copy(parentdep), basedep);
basedep = expr_eliminate_dups(basedep);
menu->dep = basedep;
if (menu->sym)
Expand Down Expand Up @@ -342,8 +326,7 @@ void menu_finalize(struct menu *parent)
"values not supported");
}
current_entry = menu;
if (menu->sym->type == S_UNKNOWN)
menu_set_type(sym->type);
menu_set_type(sym->type);
menu_add_symbol(P_CHOICE, sym, NULL);
prop = sym_get_choice_prop(sym);
for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
Expand Down

0 comments on commit 88ad08d

Please sign in to comment.