Lines Matching refs:menu

18 struct menu rootmenu;
19 static struct menu **last_entry_ptr;
28 struct menu *menu_next(struct menu *menu, struct menu *root) in menu_next() argument
30 if (menu->list) in menu_next()
31 return menu->list; in menu_next()
33 while (menu != root && !menu->next) in menu_next()
34 menu = menu->parent; in menu_next()
36 if (menu == root) in menu_next()
39 return menu->next; in menu_next()
42 void menu_warn(const struct menu *menu, const char *fmt, ...) in menu_warn() argument
46 fprintf(stderr, "%s:%d:warning: ", menu->filename, menu->lineno); in menu_warn()
70 struct menu *menu; in menu_add_entry() local
72 menu = xmalloc(sizeof(*menu)); in menu_add_entry()
73 memset(menu, 0, sizeof(*menu)); in menu_add_entry()
74 menu->sym = sym; in menu_add_entry()
75 menu->parent = current_menu; in menu_add_entry()
76 menu->filename = cur_filename; in menu_add_entry()
77 menu->lineno = cur_lineno; in menu_add_entry()
79 *last_entry_ptr = menu; in menu_add_entry()
80 last_entry_ptr = &menu->next; in menu_add_entry()
81 current_entry = menu; in menu_add_entry()
83 list_add_tail(&menu->link, &sym->menus); in menu_add_entry()
86 struct menu *menu_add_menu(void) in menu_add_menu()
160 prop->menu = current_entry; in menu_add_prop()
193 struct menu *menu = current_entry; in menu_add_prompt() local
195 while ((menu = menu->parent) != NULL) { in menu_add_prompt()
197 if (!menu->visibility) in menu_add_prompt()
200 menu->visibility); in menu_add_prompt()
256 struct menu *choice = sym_get_choice_menu(sym2); in sym_check_prop()
294 static void _menu_finalize(struct menu *parent, bool inside_choice) in _menu_finalize()
296 struct menu *menu, *last_menu; in _menu_finalize() local
309 for (menu = parent->list; menu; menu = menu->next) { in _menu_finalize()
314 basedep = rewrite_m(menu->dep); in _menu_finalize()
318 menu->dep = basedep; in _menu_finalize()
320 if (menu->sym) in _menu_finalize()
325 prop = menu->sym->prop; in _menu_finalize()
331 prop = menu->prompt; in _menu_finalize()
335 if (prop->menu != menu) in _menu_finalize()
371 expr_alloc_and(expr_alloc_symbol(menu->sym), dep)); in _menu_finalize()
375 expr_alloc_and(expr_alloc_symbol(menu->sym), dep)); in _menu_finalize()
384 for (menu = parent->list; menu; menu = menu->next) in _menu_finalize()
385 _menu_finalize(menu, sym && sym_is_choice(sym)); in _menu_finalize()
415 for (menu = parent->next; menu; menu = menu->next) { in _menu_finalize()
416 dep = menu->prompt ? menu->prompt->visible.expr : menu->dep; in _menu_finalize()
443 _menu_finalize(menu, false); in _menu_finalize()
444 menu->parent = parent; in _menu_finalize()
445 last_menu = menu; in _menu_finalize()
455 for (menu = parent->list; menu; menu = menu->next) { in _menu_finalize()
484 if (menu->list && (!menu->prompt || !menu->prompt->text)) { in _menu_finalize()
485 for (last_menu = menu->list; ; last_menu = last_menu->next) { in _menu_finalize()
490 last_menu->next = menu->next; in _menu_finalize()
491 menu->next = menu->list; in _menu_finalize()
492 menu->list = NULL; in _menu_finalize()
511 bool menu_has_prompt(const struct menu *menu) in menu_has_prompt() argument
513 if (!menu->prompt) in menu_has_prompt()
523 bool menu_is_empty(struct menu *menu) in menu_is_empty() argument
525 struct menu *child; in menu_is_empty()
527 for (child = menu->list; child; child = child->next) { in menu_is_empty()
534 bool menu_is_visible(struct menu *menu) in menu_is_visible() argument
536 struct menu *child; in menu_is_visible()
540 if (!menu->prompt) in menu_is_visible()
543 if (menu->visibility) { in menu_is_visible()
544 if (expr_calc_value(menu->visibility) == no) in menu_is_visible()
548 sym = menu->sym; in menu_is_visible()
551 visible = menu->prompt->visible.tri; in menu_is_visible()
553 visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr); in menu_is_visible()
558 if (!sym || sym_get_tristate_value(menu->sym) == no) in menu_is_visible()
561 for (child = menu->list; child; child = child->next) in menu_is_visible()
568 const char *menu_get_prompt(const struct menu *menu) in menu_get_prompt() argument
570 if (menu->prompt) in menu_get_prompt()
571 return menu->prompt->text; in menu_get_prompt()
572 else if (menu->sym) in menu_get_prompt()
573 return menu->sym->name; in menu_get_prompt()
577 struct menu *menu_get_parent_menu(struct menu *menu) in menu_get_parent_menu() argument
581 for (; menu != &rootmenu; menu = menu->parent) { in menu_get_parent_menu()
582 type = menu->prompt ? menu->prompt->type : 0; in menu_get_parent_menu()
586 return menu; in menu_get_parent_menu()
589 static void get_def_str(struct gstr *r, const struct menu *menu) in get_def_str() argument
592 menu->filename, menu->lineno); in get_def_str()
614 struct menu *submenu[8], *menu, *location = NULL; in get_prompt_str() local
619 get_dep_str(r, prop->menu->dep, " Depends on: "); in get_prompt_str()
628 if (!expr_eq(prop->menu->dep, prop->visible.expr)) in get_prompt_str()
631 menu = prop->menu; in get_prompt_str()
632 for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) { in get_prompt_str()
633 submenu[i++] = menu; in get_prompt_str()
634 if (location == NULL && menu_is_visible(menu)) in get_prompt_str()
635 location = menu; in get_prompt_str()
648 menu = submenu[i]; in get_prompt_str()
649 if (jump && menu == location) { in get_prompt_str()
659 str_printf(r, "%*c-> %s", indent, ' ', menu_get_prompt(menu)); in get_prompt_str()
660 if (menu->sym) { in get_prompt_str()
661 str_printf(r, " (%s [=%s])", menu->sym->name ? in get_prompt_str()
662 menu->sym->name : "<choice>", in get_prompt_str()
663 sym_get_string_value(menu->sym)); in get_prompt_str()
694 struct menu *menu; in get_symbol_str() local
711 list_for_each_entry(menu, &sym->menus, link) { in get_symbol_str()
712 if (menu->prompt) { in get_symbol_str()
713 get_def_str(r, menu); in get_symbol_str()
714 get_prompt_str(r, menu->prompt, head); in get_symbol_str()
718 list_for_each_entry(menu, &sym->menus, link) { in get_symbol_str()
719 if (!menu->prompt) { in get_symbol_str()
720 get_def_str(r, menu); in get_symbol_str()
721 get_dep_str(r, menu->dep, " Depends on: "); in get_symbol_str()
756 void menu_get_ext_help(struct menu *menu, struct gstr *help) in menu_get_ext_help() argument
758 struct symbol *sym = menu->sym; in menu_get_ext_help()
761 if (menu->help) { in menu_get_ext_help()
764 help_text = menu->help; in menu_get_ext_help()