/[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.5 by sysadm, Sat Mar 19 15:54:14 2005 UTC Revision 1.7 by sysadm, Sun Mar 20 14:37:37 2005 UTC
# Line 22  Line 22 
22  #include <stdio.h>  #include <stdio.h>
23  #include <ctype.h>  #include <ctype.h>
24  #include <regex.h>  #include <regex.h>
25    #include <stdlib.h>
26    
27  MENU_SET bbs_menu;  MENU_SET bbs_menu;
28    
# Line 46  load_menu (MENU_SET * p_menu_set, const Line 47  load_menu (MENU_SET * p_menu_set, const
47          case '#':          case '#':
48            break;            break;
49          case '%':          case '%':
50            if (ireg ("^%S_([A-Za-z0-9_]+)", buffer, 1, pmatch) == 0)            if (ireg ("^%S_([A-Za-z0-9_]+)", buffer, 2, pmatch) == 0)
51              {              {
52                strncpy (temp, buffer + pmatch[0].rm_so,                strncpy (temp, buffer + pmatch[1].rm_so,
53                         pmatch[0].rm_eo - pmatch[0].rm_so + 1);                         pmatch[1].rm_eo - pmatch[1].rm_so);
54                sprintf (screen_filename, "%sMENU_SCR_%s", app_temp_dir, temp);                temp [pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
55                  sprintf (screen_filename, "%sMENU_SCR_%s", app_temp_dir, temp);
56    
57                if ((fout = fopen (screen_filename, "w")) == NULL)                if ((fout = fopen (screen_filename, "w")) == NULL)
58                  {                  {
# Line 76  load_menu (MENU_SET * p_menu_set, const Line 78  load_menu (MENU_SET * p_menu_set, const
78    
79                strncpy (p_menu_set->p_menu[i]->name,                strncpy (p_menu_set->p_menu[i]->name,
80                  buffer + pmatch[1].rm_so,                  buffer + pmatch[1].rm_so,
81                  pmatch[1].rm_eo - pmatch[1].rm_so + 1);                  pmatch[1].rm_eo - pmatch[1].rm_so);
82                  p_menu_set->p_menu[i]->name[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
83    
84                j = 0;                j = 0;
85                                
# Line 103  load_menu (MENU_SET * p_menu_set, const Line 106  load_menu (MENU_SET * p_menu_set, const
106                        p_menu_set->p_menu[i]->items[j]->submenu = 1;                        p_menu_set->p_menu[i]->items[j]->submenu = 1;
107                        strncpy (p_menu_set->p_menu[i]->items[j]->action,                        strncpy (p_menu_set->p_menu[i]->items[j]->action,
108                          buffer + pmatch[1].rm_so,                          buffer + pmatch[1].rm_so,
109                          pmatch[1].rm_eo - pmatch[1].rm_so + 1);                          pmatch[1].rm_eo - pmatch[1].rm_so);
110                        strncpy (temp,                        p_menu_set->p_menu[i]->items[j]->action[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
111                          strncpy (temp,
112                          buffer + pmatch[2].rm_so,                          buffer + pmatch[2].rm_so,
113                          pmatch[2].rm_eo - pmatch[2].rm_so + 1);                          pmatch[2].rm_eo - pmatch[2].rm_so);
114                          temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
115                        p_menu_set->p_menu[i]->items[j]->row = atoi (temp);                        p_menu_set->p_menu[i]->items[j]->row = atoi (temp);
116                        strncpy (temp,                        strncpy (temp,
117                          buffer + pmatch[3].rm_so,                          buffer + pmatch[3].rm_so,
118                          pmatch[3].rm_eo - pmatch[3].rm_so + 1);                          pmatch[3].rm_eo - pmatch[3].rm_so);
119                        p_menu_set->p_menu[i]->items[j]->col = atoi (temp);                        temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
120                          p_menu_set->p_menu[i]->items[j]->col = atoi (temp);
121                        strncpy (temp,                        strncpy (temp,
122                          buffer + pmatch[4].rm_so,                          buffer + pmatch[4].rm_so,
123                          pmatch[4].rm_eo - pmatch[4].rm_so + 1);                          pmatch[4].rm_eo - pmatch[4].rm_so);
124                        p_menu_set->p_menu[i]->items[j]->priv = atoi (temp);                        temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';
125                          p_menu_set->p_menu[i]->items[j]->priv = atoi (temp);
126                        strncpy (p_menu_set->p_menu[i]->items[j]->name,                        strncpy (p_menu_set->p_menu[i]->items[j]->name,
127                          buffer + pmatch[5].rm_so,                          buffer + pmatch[5].rm_so,
128                          pmatch[5].rm_eo - pmatch[5].rm_so + 1);                          pmatch[5].rm_eo - pmatch[5].rm_so);
129                          p_menu_set->p_menu[i]->items[j]->name[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';
130                        strncpy (p_menu_set->p_menu[i]->items[j]->text,                        strncpy (p_menu_set->p_menu[i]->items[j]->text,
131                          buffer + pmatch[6].rm_so,                          buffer + pmatch[6].rm_so,
132                          pmatch[6].rm_eo - pmatch[6].rm_so + 1);                          pmatch[6].rm_eo - pmatch[6].rm_so);
133                          p_menu_set->p_menu[i]->items[j]->text[pmatch[6].rm_eo - pmatch[6].rm_so] = '\0';
134                        j++;                        j++;
135                        continue;                        continue;
136                      }                      }
# Line 135  load_menu (MENU_SET * p_menu_set, const Line 144  load_menu (MENU_SET * p_menu_set, const
144                        p_menu_set->p_menu[i]->items[j]->submenu = 0;                        p_menu_set->p_menu[i]->items[j]->submenu = 0;
145                        strncpy (p_menu_set->p_menu[i]->items[j]->action,                        strncpy (p_menu_set->p_menu[i]->items[j]->action,
146                          buffer + pmatch[1].rm_so,                          buffer + pmatch[1].rm_so,
147                          pmatch[1].rm_eo - pmatch[1].rm_so + 1);                          pmatch[1].rm_eo - pmatch[1].rm_so);
148                          p_menu_set->p_menu[i]->items[j]->action[pmatch[0].rm_eo - pmatch[0].rm_so] = '\0';
149                        strncpy (temp,                        strncpy (temp,
150                          buffer + pmatch[2].rm_so,                          buffer + pmatch[2].rm_so,
151                          pmatch[2].rm_eo - pmatch[2].rm_so + 1);                          pmatch[2].rm_eo - pmatch[2].rm_so);
152                          temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
153                        p_menu_set->p_menu[i]->items[j]->row = atoi (temp);                        p_menu_set->p_menu[i]->items[j]->row = atoi (temp);
154                        strncpy (temp,                        strncpy (temp,
155                          buffer + pmatch[3].rm_so,                          buffer + pmatch[3].rm_so,
156                          pmatch[3].rm_eo - pmatch[3].rm_so + 1);                          pmatch[3].rm_eo - pmatch[3].rm_so);
157                          temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
158                        p_menu_set->p_menu[i]->items[j]->col = atoi (temp);                        p_menu_set->p_menu[i]->items[j]->col = atoi (temp);
159                        strncpy (temp,                        strncpy (temp,
160                          buffer + pmatch[4].rm_so,                          buffer + pmatch[4].rm_so,
161                          pmatch[4].rm_eo - pmatch[4].rm_so + 1);                          pmatch[4].rm_eo - pmatch[4].rm_so);
162                          temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';
163                        p_menu_set->p_menu[i]->items[j]->priv = atoi (temp);                        p_menu_set->p_menu[i]->items[j]->priv = atoi (temp);
164                        strncpy (p_menu_set->p_menu[i]->items[j]->name,                        strncpy (p_menu_set->p_menu[i]->items[j]->name,
165                          buffer + pmatch[5].rm_so,                          buffer + pmatch[5].rm_so,
166                          pmatch[5].rm_eo - pmatch[5].rm_so + 1);                          pmatch[5].rm_eo - pmatch[5].rm_so);
167                          p_menu_set->p_menu[i]->items[j]->name[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';
168                        strncpy (p_menu_set->p_menu[i]->items[j]->text,                        strncpy (p_menu_set->p_menu[i]->items[j]->text,
169                          buffer + pmatch[6].rm_so,                          buffer + pmatch[6].rm_so,
170                          pmatch[6].rm_eo - pmatch[6].rm_so + 1);                          pmatch[6].rm_eo - pmatch[6].rm_so);
171                          p_menu_set->p_menu[i]->items[j]->text[pmatch[6].rm_eo - pmatch[6].rm_so] = '\0';
172                        j++;                        j++;
173                        continue;                        continue;
174                      }                      }
# Line 164  load_menu (MENU_SET * p_menu_set, const Line 179  load_menu (MENU_SET * p_menu_set, const
179                      {                      {
180                        strncpy (temp,                        strncpy (temp,
181                          buffer + pmatch[1].rm_so,                          buffer + pmatch[1].rm_so,
182                          pmatch[1].rm_eo - pmatch[1].rm_so + 1);                          pmatch[1].rm_eo - pmatch[1].rm_so);
183                          temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
184                        p_menu_set->p_menu[i]->title.row = atoi (temp);                        p_menu_set->p_menu[i]->title.row = atoi (temp);
185                        strncpy (temp,                        strncpy (temp,
186                          buffer + pmatch[2].rm_so,                          buffer + pmatch[2].rm_so,
187                          pmatch[2].rm_eo - pmatch[2].rm_so + 1);                          pmatch[2].rm_eo - pmatch[2].rm_so);
188                          temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
189                        p_menu_set->p_menu[i]->title.col = atoi (temp);                        p_menu_set->p_menu[i]->title.col = atoi (temp);
190                        strncpy (p_menu_set->p_menu[i]->title.text,                        strncpy (p_menu_set->p_menu[i]->title.text,
191                          buffer + pmatch[3].rm_so,                          buffer + pmatch[3].rm_so,
192                          pmatch[3].rm_eo - pmatch[3].rm_so + 1);                          pmatch[3].rm_eo - pmatch[3].rm_so);
193                          p_menu_set->p_menu[i]->title.text[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
194                        continue;                        continue;
195                      }                      }
196                    if (ireg (                    if (ireg (
# Line 182  load_menu (MENU_SET * p_menu_set, const Line 200  load_menu (MENU_SET * p_menu_set, const
200                      {                      {
201                        strncpy (temp,                        strncpy (temp,
202                          buffer + pmatch[1].rm_so,                          buffer + pmatch[1].rm_so,
203                          pmatch[1].rm_eo - pmatch[1].rm_so + 1);                          pmatch[1].rm_eo - pmatch[1].rm_so);
204                          temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
205                        p_menu_set->p_menu[i]->screen.row = atoi (temp);                        p_menu_set->p_menu[i]->screen.row = atoi (temp);
206                        strncpy (temp,                        strncpy (temp,
207                          buffer + pmatch[2].rm_so,                          buffer + pmatch[2].rm_so,
208                          pmatch[2].rm_eo - pmatch[2].rm_so + 1);                          pmatch[2].rm_eo - pmatch[2].rm_so);
209                          temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
210                        p_menu_set->p_menu[i]->screen.col = atoi (temp);                        p_menu_set->p_menu[i]->screen.col = atoi (temp);
211                        strncpy (temp,                        strncpy (temp,
212                          buffer + pmatch[3].rm_so,                          buffer + pmatch[3].rm_so,
213                          pmatch[3].rm_eo - pmatch[3].rm_so + 1);                          pmatch[3].rm_eo - pmatch[3].rm_so);
214                          temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
215                        sprintf (p_menu_set->p_menu[i]->screen.filename,                        sprintf (p_menu_set->p_menu[i]->screen.filename,
216                          "%sMENU_SCR_%s", app_temp_dir, temp);                          "%sMENU_SCR_%s", app_temp_dir, temp);
217                        continue;                        continue;
# Line 219  get_menu (MENU_SET * p_menu_set, const c Line 240  get_menu (MENU_SET * p_menu_set, const c
240    {    {
241      if (strcmp(p_menu_set->p_menu[i]->name, menu_name) == 0)      if (strcmp(p_menu_set->p_menu[i]->name, menu_name) == 0)
242      {      {
 log_std ("%s %s\n", p_menu_set->p_menu[i]->name, menu_name);  
243        return p_menu_set->p_menu[i];        return p_menu_set->p_menu[i];
244      }      }
245    }    }
246    
 log_std ("%d:)\n", i);  
247    return NULL;    return NULL;
248  }  }
249    


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

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