kconfig: re-add menu_get_parent_menu() that returns parent menu

This helper returns the parent menu, or NULL if there is no parent.
The main difference from the previous version is that it always returns
the parent menu even when the given argument is itself a menu.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
This commit is contained in:
Masahiro Yamada 2025-06-25 00:04:53 +09:00
parent 3c292cd004
commit 7d1bfaa457
2 changed files with 15 additions and 0 deletions

View File

@ -97,6 +97,7 @@ bool menu_is_empty(struct menu *menu);
bool menu_is_visible(struct menu *menu);
bool menu_has_prompt(const struct menu *menu);
const char *menu_get_prompt(const struct menu *menu);
struct menu *menu_get_parent_menu(struct menu *menu);
struct menu *menu_get_menu_or_parent_menu(struct menu *menu);
int get_jump_key_char(void);
struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head);

View File

@ -575,6 +575,20 @@ const char *menu_get_prompt(const struct menu *menu)
return NULL;
}
/**
* menu_get_parent_menu - return the parent menu or NULL
* @menu: pointer to the menu
* return: the parent menu, or NULL if there is no parent.
*/
struct menu *menu_get_parent_menu(struct menu *menu)
{
for (menu = menu->parent; menu; menu = menu->parent)
if (menu->type == M_MENU)
return menu;
return NULL;
}
/**
* menu_get_menu_or_parent_menu - return the parent menu or the menu itself
* @menu: pointer to the menu