/[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.38 by sysadm, Tue May 13 07:28:51 2025 UTC Revision 1.39 by sysadm, Wed May 14 04:22:45 2025 UTC
# Line 50  int load_menu(MENU_SET *p_menu_set, cons Line 50  int load_menu(MENU_SET *p_menu_set, cons
50          MENU_ITEM *p_item = NULL;          MENU_ITEM *p_item = NULL;
51    
52          p_menu_set->menu_count = 0;          p_menu_set->menu_count = 0;
53            p_menu_set->p_menu_name_dict = trie_dict_create();
54    
55          if ((fin = fopen(conf_file, "r")) == NULL)          if ((fin = fopen(conf_file, "r")) == NULL)
56          {          {
# Line 126  int load_menu(MENU_SET *p_menu_set, cons Line 127  int load_menu(MENU_SET *p_menu_set, cons
127                                  }                                  }
128                                  strncpy(p_menu->name, p, sizeof(p_menu->name) - 1);                                  strncpy(p_menu->name, p, sizeof(p_menu->name) - 1);
129                                  p_menu->name[sizeof(p_menu->name) - 1] = '\0';                                  p_menu->name[sizeof(p_menu->name) - 1] = '\0';
130                                    if (trie_dict_set(p_menu_set->p_menu_name_dict, p_menu->name, (int64_t)p_menu) != 1)
131                                    {
132                                            log_error("Error set menu dict [%s]\n", p_menu->name);
133                                    }
134    
135                                  // Check syntax                                  // Check syntax
136                                  q = strtok_r(NULL, MENU_CONF_DELIM_WITH_SPACE, &saveptr);                                  q = strtok_r(NULL, MENU_CONF_DELIM_WITH_SPACE, &saveptr);
# Line 555  int load_menu(MENU_SET *p_menu_set, cons Line 560  int load_menu(MENU_SET *p_menu_set, cons
560    
561  MENU *get_menu(MENU_SET *p_menu_set, const char *menu_name)  MENU *get_menu(MENU_SET *p_menu_set, const char *menu_name)
562  {  {
563          int i;          int ret;
564            int64_t value = 0;
565    
566          for (i = 0; i < p_menu_set->menu_count; i++)          ret = trie_dict_get(p_menu_set->p_menu_name_dict, menu_name, &value);
567    
568            if (ret == 1) // found
569          {          {
570                  if (strcmp(p_menu_set->p_menu[i]->name, menu_name) == 0)                  return ((MENU *)value);
                 {  
                         return p_menu_set->p_menu[i];  
                 }  
571          }          }
572    
573          return NULL;          return NULL;
# Line 774  void unload_menu(MENU_SET *p_menu_set) Line 779  void unload_menu(MENU_SET *p_menu_set)
779          MENU *p_menu;          MENU *p_menu;
780          int i, j;          int i, j;
781    
782            if (p_menu_set->p_menu_name_dict != NULL)
783            {
784                    trie_dict_destroy(p_menu_set->p_menu_name_dict);
785                    p_menu_set->p_menu_name_dict = NULL;
786            }
787    
788          for (i = 0; i < p_menu_set->menu_count; i++)          for (i = 0; i < p_menu_set->menu_count; i++)
789          {          {
790                  p_menu = p_menu_set->p_menu[i];                  p_menu = p_menu_set->p_menu[i];


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

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