diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-11-09 14:33:22 -0800 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-11-09 14:33:22 -0800 |
| commit | e82b3aec8d508d2a925a4c766e97f16b7c4dfb1b (patch) | |
| tree | 69d5685ef0c194f651a03e30bff14628b4d45400 /scripts/kconfig/menu.c | |
| parent | ec58ef03284f0bfa50a04982b74c8c2325a0758e (diff) | |
| parent | ad8f76be48d817b48222411ae16a7dfe257bdb24 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'scripts/kconfig/menu.c')
| -rw-r--r-- | scripts/kconfig/menu.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index 5cfa6c405cf0..0fce20cb7f3c 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c @@ -61,10 +61,11 @@ void menu_end_entry(void) { } -void menu_add_menu(void) +struct menu *menu_add_menu(void) { - current_menu = current_entry; + menu_end_entry(); last_entry_ptr = ¤t_entry->list; + return current_menu = current_entry; } void menu_end_menu(void) @@ -151,6 +152,12 @@ void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep) menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep); } +static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2) +{ + return sym2->type == S_INT || sym2->type == S_HEX || + (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name)); +} + void sym_check_prop(struct symbol *sym) { struct property *prop; @@ -185,8 +192,8 @@ void sym_check_prop(struct symbol *sym) if (sym->type != S_INT && sym->type != S_HEX) prop_warn(prop, "range is only allowed " "for int or hex symbols"); - if (!sym_string_valid(sym, prop->expr->left.sym->name) || - !sym_string_valid(sym, prop->expr->right.sym->name)) + if (!menu_range_valid_sym(sym, prop->expr->left.sym) || + !menu_range_valid_sym(sym, prop->expr->right.sym)) prop_warn(prop, "range is invalid"); break; default: |
