--- lbbs/src/menu.c 2005/03/22 12:12:33 1.14 +++ lbbs/src/menu.c 2005/03/22 13:36:13 1.16 @@ -437,19 +437,40 @@ menu_control (MENU_SET * p_menu_set, int } } if (isalpha (key)) - { - for (i = 0; i < p_menu->item_count; i++) { - if (toupper (key) == toupper (p_menu->items[i]->name[0])) + for (i = 0; i < p_menu->item_count; i++) { - display_menu_cursor (p_menu, 0); - p_menu->item_cur_pos = i; - display_menu_cursor (p_menu, 1); - return ""; + if (toupper (key) == toupper (p_menu->items[i]->name[0])) + { + display_menu_cursor (p_menu, 0); + p_menu->item_cur_pos = i; + display_menu_cursor (p_menu, 1); + return ""; + } } } - } } return ""; } + +void +unload_menu (MENU_SET * p_menu_set) +{ + MENU *p_menu; + MENU_ITEM *p_menuitem; + int i, j; + + for (i = 0; i < p_menu_set->menu_count; i++) + { + p_menu = p_menu_set->p_menu[i]; + for (j = 0; j < p_menu->item_count; j++) + { + free (p_menu->items[j]); + } + free (p_menu); + } + + p_menu_set->menu_count = 0; + p_menu_set->menu_select_depth = 0; +}