/[LeafOK_CVS]/lbbs/src/menu.c
ViewVC logotype

Diff of /lbbs/src/menu.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.68 by sysadm, Tue Jun 24 10:01:24 2025 UTC Revision 1.70 by sysadm, Thu Jun 26 03:25:25 2025 UTC
# Line 38  Line 38 
38    
39  #define MENU_SET_RESERVED_LENGTH (sizeof(int16_t) * 4)  #define MENU_SET_RESERVED_LENGTH (sizeof(int16_t) * 4)
40    
41  MENU_SET *p_bbs_menu;  MENU_SET bbs_menu;
42    
43  int load_menu(MENU_SET *p_menu_set, const char *conf_file)  int load_menu(MENU_SET *p_menu_set, const char *conf_file)
44  {  {
# Line 60  int load_menu(MENU_SET *p_menu_set, cons Line 60  int load_menu(MENU_SET *p_menu_set, cons
60          key_t key;          key_t key;
61          size_t size;          size_t size;
62    
63            // Initialize the data structure
64            memset(p_menu_set, 0, sizeof(*p_menu_set));
65    
66          // Use trie_dict to search menu_id by menu name          // Use trie_dict to search menu_id by menu name
67          p_menu_set->p_menu_name_dict = trie_dict_create();          p_menu_set->p_menu_name_dict = trie_dict_create();
68          if (p_menu_set->p_menu_name_dict == NULL)          if (p_menu_set->p_menu_name_dict == NULL)
# Line 119  int load_menu(MENU_SET *p_menu_set, cons Line 122  int load_menu(MENU_SET *p_menu_set, cons
122          p_menu_set->menu_screen_count = 0;          p_menu_set->menu_screen_count = 0;
123          p_menu_set->choose_step = 0;          p_menu_set->choose_step = 0;
124          p_menu_set->menu_id_path[0] = 0;          p_menu_set->menu_id_path[0] = 0;
125            p_menu_set->menu_item_pos[0] = 0;
126          p_menu_set->allow_exit = 0;          p_menu_set->allow_exit = 0;
127    
128          while (fgets(buffer, sizeof(buffer), fin))          while (fgets(buffer, sizeof(buffer), fin))
# Line 984  int display_menu(MENU_SET *p_menu_set) Line 988  int display_menu(MENU_SET *p_menu_set)
988                  return EXITMENU;                  return EXITMENU;
989          }          }
990    
991            if(p_menu->item_count <= 0) // empty menu
992            {
993                    moveto(p_menu->screen_row, p_menu->screen_col);
994                    clrtoeol();
995                    prints("没有可选项");
996                    press_any_key();
997                    return -1;
998            }
999    
1000          menu_item_pos = p_menu_set->menu_item_pos[p_menu_set->choose_step];          menu_item_pos = p_menu_set->menu_item_pos[p_menu_set->choose_step];
1001          menu_item_id = p_menu->items[menu_item_pos];          menu_item_id = p_menu->items[menu_item_pos];
1002          p_menu_item = get_menu_item_by_id(p_menu_set, menu_item_id);          p_menu_item = get_menu_item_by_id(p_menu_set, menu_item_id);
# Line 1395  int get_menu_shm_readonly(MENU_SET *p_me Line 1408  int get_menu_shm_readonly(MENU_SET *p_me
1408          p_menu_set->p_menu_screen_buf = p_menu_set->p_menu_screen_pool + sizeof(MENU_SCREEN) * MAX_MENUS;          p_menu_set->p_menu_screen_buf = p_menu_set->p_menu_screen_pool + sizeof(MENU_SCREEN) * MAX_MENUS;
1409          p_menu_set->p_menu_screen_buf_free = p_menu_set->p_menu_screen_buf;          p_menu_set->p_menu_screen_buf_free = p_menu_set->p_menu_screen_buf;
1410    
1411            p_menu_set->choose_step = 0;
1412            p_menu_set->menu_id_path[0] = 0;
1413            p_menu_set->menu_item_pos[0] = 0;
1414    
1415          return 0;          return 0;
1416  }  }
1417    


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1