commit 69299380ca501558c1d844fc90075cfb7de17a15
parent 27ce21ac852cb520740210ba68062e981657b6f4
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu, 4 Aug 2022 14:45:05 +0800
fix(menu): make :menu still print header when there are no menus
Diffstat:
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
@@ -810,17 +810,23 @@ static vimmenu_T *find_menu(vimmenu_T *menu, char *name, int modes)
/// Show the mapping associated with a menu item or hierarchy in a sub-menu.
static int show_menus(char *const path_name, int modes)
{
- // First, find the (sub)menu with the given name
- vimmenu_T *menu = find_menu(*get_root_menu(path_name), path_name, modes);
- if (!menu) {
- return FAIL;
+ vimmenu_T *menu = *get_root_menu(path_name);
+ if (menu != NULL) {
+ // First, find the (sub)menu with the given name
+ menu = find_menu(menu, path_name, modes);
+ if (menu == NULL) {
+ return FAIL;
+ }
}
+ // When there are no menus at all, the title still needs to be shown.
// Now we have found the matching menu, and we list the mappings
// Highlight title
msg_puts_title(_("\n--- Menus ---"));
- show_menus_recursive(menu->parent, modes, 0);
+ if (menu != NULL) {
+ show_menus_recursive(menu->parent, modes, 0);
+ }
return OK;
}