/[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.27 by sysadm, Mon May 5 11:11:06 2025 UTC Revision 1.30 by sysadm, Tue May 6 05:31:26 2025 UTC
# Line 1  Line 1 
1  /***************************************************************************  /***************************************************************************
2                                                    menu.c  -  description                                                    menu.c  -  description
3                                                           -------------------                                                           -------------------
4          begin                : Wed Mar 16 2004          Copyright            : (C) 2004-2025 by Leaflet
5          copyright            : (C) 2005 by Leaflet          Email                : leaflet@leafok.com
         email                : leaflet@leafok.com  
6   ***************************************************************************/   ***************************************************************************/
7    
8  /***************************************************************************  /***************************************************************************
9   *                                                                         *   *                                                                         *
10   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
11   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
12   *   the Free Software Foundation; either version 2 of the License, or     *   *   the Free Software Foundation; either version 3 of the License, or     *
13   *   (at your option) any later version.                                   *   *   (at your option) any later version.                                   *
14   *                                                                         *   *                                                                         *
15   ***************************************************************************/   ***************************************************************************/
# Line 63  int load_menu(MENU_SET *p_menu_set, cons Line 62  int load_menu(MENU_SET *p_menu_set, cons
62                          if (ireg("^%S_([A-Za-z0-9_]+)", buffer, 2, pmatch) == 0)                          if (ireg("^%S_([A-Za-z0-9_]+)", buffer, 2, pmatch) == 0)
63                          {                          {
64                                  strncpy(temp, buffer + pmatch[1].rm_so,                                  strncpy(temp, buffer + pmatch[1].rm_so,
65                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
66                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
67                                  sprintf(screen_filename, "%s/MENU_SCR_%s", MENU_TEMP_DIR, temp);                                  snprintf(screen_filename, sizeof(screen_filename), "%s/MENU_SCR_%s", MENU_TEMP_DIR, temp);
68    
69                                  if ((fout = fopen(screen_filename, "w")) == NULL)                                  if ((fout = fopen(screen_filename, "w")) == NULL)
70                                  {                                  {
# Line 93  int load_menu(MENU_SET *p_menu_set, cons Line 92  int load_menu(MENU_SET *p_menu_set, cons
92    
93                                  strncpy(p_menu_set->p_menu[i]->name,                                  strncpy(p_menu_set->p_menu[i]->name,
94                                                  buffer + pmatch[1].rm_so,                                                  buffer + pmatch[1].rm_so,
95                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
96                                  p_menu_set->p_menu[i]->name[pmatch[1].rm_eo - pmatch[1].rm_so] =                                  p_menu_set->p_menu[i]->name[pmatch[1].rm_eo - pmatch[1].rm_so] =
97                                          '\0';                                          '\0';
98    
# Line 123  int load_menu(MENU_SET *p_menu_set, cons Line 122  int load_menu(MENU_SET *p_menu_set, cons
122                                                  p_menu_set->p_menu[i]->items[j]->submenu = 1;                                                  p_menu_set->p_menu[i]->items[j]->submenu = 1;
123                                                  strncpy(p_menu_set->p_menu[i]->items[j]->action,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->action,
124                                                                  buffer + pmatch[1].rm_so,                                                                  buffer + pmatch[1].rm_so,
125                                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
126                                                  p_menu_set->p_menu[i]->items[j]->action[pmatch[1].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->action[pmatch[1].rm_eo -
127                                                                                                                                  pmatch[1].rm_so] = '\0';                                                                                                                                  pmatch[1].rm_so] = '\0';
128                                                  strncpy(temp, buffer + pmatch[2].rm_so,                                                  strncpy(temp, buffer + pmatch[2].rm_so,
129                                                                  pmatch[2].rm_eo - pmatch[2].rm_so);                                                                  (size_t)(pmatch[2].rm_eo - pmatch[2].rm_so));
130                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
131                                                  p_menu_set->p_menu[i]->items[j]->row = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->row = atoi(temp);
132                                                  strncpy(temp,                                                  strncpy(temp,
133                                                                  buffer + pmatch[3].rm_so,                                                                  buffer + pmatch[3].rm_so,
134                                                                  pmatch[3].rm_eo - pmatch[3].rm_so);                                                                  (size_t)(pmatch[3].rm_eo - pmatch[3].rm_so));
135                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
136                                                  p_menu_set->p_menu[i]->items[j]->col = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->col = atoi(temp);
137                                                  strncpy(temp,                                                  strncpy(temp,
138                                                                  buffer + pmatch[4].rm_so,                                                                  buffer + pmatch[4].rm_so,
139                                                                  pmatch[4].rm_eo - pmatch[4].rm_so);                                                                  (size_t)(pmatch[4].rm_eo - pmatch[4].rm_so));
140                                                  temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';                                                  temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';
141                                                  p_menu_set->p_menu[i]->items[j]->priv = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->priv = atoi(temp);
142                                                  strncpy(temp,                                                  strncpy(temp,
143                                                                  buffer + pmatch[5].rm_so,                                                                  buffer + pmatch[5].rm_so,
144                                                                  pmatch[5].rm_eo - pmatch[5].rm_so);                                                                  (size_t)(pmatch[5].rm_eo - pmatch[5].rm_so));
145                                                  temp[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';                                                  temp[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';
146                                                  p_menu_set->p_menu[i]->items[j]->level = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->level = atoi(temp);
147                                                  strncpy(p_menu_set->p_menu[i]->items[j]->name,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->name,
148                                                                  buffer + pmatch[6].rm_so,                                                                  buffer + pmatch[6].rm_so,
149                                                                  pmatch[6].rm_eo - pmatch[6].rm_so);                                                                  (size_t)(pmatch[6].rm_eo - pmatch[6].rm_so));
150                                                  p_menu_set->p_menu[i]->items[j]->name[pmatch[6].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->name[pmatch[6].rm_eo -
151                                                                                                                            pmatch[6].rm_so] =                                                                                                                            pmatch[6].rm_so] =
152                                                          '\0';                                                          '\0';
153                                                  strncpy(p_menu_set->p_menu[i]->items[j]->text,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->text,
154                                                                  buffer + pmatch[7].rm_so,                                                                  buffer + pmatch[7].rm_so,
155                                                                  pmatch[7].rm_eo - pmatch[7].rm_so);                                                                  (size_t)(pmatch[7].rm_eo - pmatch[7].rm_so));
156                                                  p_menu_set->p_menu[i]->items[j]->text[pmatch[7].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->text[pmatch[7].rm_eo -
157                                                                                                                            pmatch[7].rm_so] =                                                                                                                            pmatch[7].rm_so] =
158                                                          '\0';                                                          '\0';
# Line 171  int load_menu(MENU_SET *p_menu_set, cons Line 170  int load_menu(MENU_SET *p_menu_set, cons
170                                                  p_menu_set->p_menu[i]->items[j]->submenu = 0;                                                  p_menu_set->p_menu[i]->items[j]->submenu = 0;
171                                                  strncpy(p_menu_set->p_menu[i]->items[j]->action,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->action,
172                                                                  buffer + pmatch[1].rm_so,                                                                  buffer + pmatch[1].rm_so,
173                                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
174                                                  p_menu_set->p_menu[i]->items[j]->action[pmatch[1].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->action[pmatch[1].rm_eo -
175                                                                                                                                  pmatch[1].rm_so] = '\0';                                                                                                                                  pmatch[1].rm_so] = '\0';
176                                                  strncpy(temp, buffer + pmatch[2].rm_so,                                                  strncpy(temp, buffer + pmatch[2].rm_so,
177                                                                  pmatch[2].rm_eo - pmatch[2].rm_so);                                                                  (size_t)(pmatch[2].rm_eo - pmatch[2].rm_so));
178                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
179                                                  p_menu_set->p_menu[i]->items[j]->row = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->row = atoi(temp);
180                                                  strncpy(temp,                                                  strncpy(temp,
181                                                                  buffer + pmatch[3].rm_so,                                                                  buffer + pmatch[3].rm_so,
182                                                                  pmatch[3].rm_eo - pmatch[3].rm_so);                                                                  (size_t)(pmatch[3].rm_eo - pmatch[3].rm_so));
183                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
184                                                  p_menu_set->p_menu[i]->items[j]->col = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->col = atoi(temp);
185                                                  strncpy(temp,                                                  strncpy(temp,
186                                                                  buffer + pmatch[4].rm_so,                                                                  buffer + pmatch[4].rm_so,
187                                                                  pmatch[4].rm_eo - pmatch[4].rm_so);                                                                  (size_t)(pmatch[4].rm_eo - pmatch[4].rm_so));
188                                                  temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';                                                  temp[pmatch[4].rm_eo - pmatch[4].rm_so] = '\0';
189                                                  p_menu_set->p_menu[i]->items[j]->priv = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->priv = atoi(temp);
190                                                  strncpy(temp,                                                  strncpy(temp,
191                                                                  buffer + pmatch[5].rm_so,                                                                  buffer + pmatch[5].rm_so,
192                                                                  pmatch[5].rm_eo - pmatch[5].rm_so);                                                                  (size_t)(pmatch[5].rm_eo - pmatch[5].rm_so));
193                                                  temp[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';                                                  temp[pmatch[5].rm_eo - pmatch[5].rm_so] = '\0';
194                                                  p_menu_set->p_menu[i]->items[j]->level = atoi(temp);                                                  p_menu_set->p_menu[i]->items[j]->level = atoi(temp);
195                                                  strncpy(p_menu_set->p_menu[i]->items[j]->name,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->name,
196                                                                  buffer + pmatch[6].rm_so,                                                                  buffer + pmatch[6].rm_so,
197                                                                  pmatch[6].rm_eo - pmatch[6].rm_so);                                                                  (size_t)(pmatch[6].rm_eo - pmatch[6].rm_so));
198                                                  p_menu_set->p_menu[i]->items[j]->name[pmatch[6].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->name[pmatch[6].rm_eo -
199                                                                                                                            pmatch[6].rm_so] =                                                                                                                            pmatch[6].rm_so] =
200                                                          '\0';                                                          '\0';
201                                                  strncpy(p_menu_set->p_menu[i]->items[j]->text,                                                  strncpy(p_menu_set->p_menu[i]->items[j]->text,
202                                                                  buffer + pmatch[7].rm_so,                                                                  buffer + pmatch[7].rm_so,
203                                                                  pmatch[7].rm_eo - pmatch[7].rm_so);                                                                  (size_t)(pmatch[7].rm_eo - pmatch[7].rm_so));
204                                                  p_menu_set->p_menu[i]->items[j]->text[pmatch[7].rm_eo -                                                  p_menu_set->p_menu[i]->items[j]->text[pmatch[7].rm_eo -
205                                                                                                                            pmatch[7].rm_so] =                                                                                                                            pmatch[7].rm_so] =
206                                                          '\0';                                                          '\0';
# Line 215  int load_menu(MENU_SET *p_menu_set, cons Line 214  int load_menu(MENU_SET *p_menu_set, cons
214                                                  p_menu_set->p_menu[i]->title.show = 1;                                                  p_menu_set->p_menu[i]->title.show = 1;
215                                                  strncpy(temp,                                                  strncpy(temp,
216                                                                  buffer + pmatch[1].rm_so,                                                                  buffer + pmatch[1].rm_so,
217                                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
218                                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';                                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
219                                                  p_menu_set->p_menu[i]->title.row = atoi(temp);                                                  p_menu_set->p_menu[i]->title.row = atoi(temp);
220                                                  strncpy(temp,                                                  strncpy(temp,
221                                                                  buffer + pmatch[2].rm_so,                                                                  buffer + pmatch[2].rm_so,
222                                                                  pmatch[2].rm_eo - pmatch[2].rm_so);                                                                  (size_t)(pmatch[2].rm_eo - pmatch[2].rm_so));
223                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
224                                                  p_menu_set->p_menu[i]->title.col = atoi(temp);                                                  p_menu_set->p_menu[i]->title.col = atoi(temp);
225                                                  strncpy(p_menu_set->p_menu[i]->title.text,                                                  strncpy(p_menu_set->p_menu[i]->title.text,
226                                                                  buffer + pmatch[3].rm_so,                                                                  buffer + pmatch[3].rm_so,
227                                                                  pmatch[3].rm_eo - pmatch[3].rm_so);                                                                  (size_t)(pmatch[3].rm_eo - pmatch[3].rm_so));
228                                                  p_menu_set->p_menu[i]->title.text[pmatch[3].rm_eo -                                                  p_menu_set->p_menu[i]->title.text[pmatch[3].rm_eo -
229                                                                                                                    pmatch[3].rm_so] =                                                                                                                    pmatch[3].rm_so] =
230                                                          '\0';                                                          '\0';
# Line 238  int load_menu(MENU_SET *p_menu_set, cons Line 237  int load_menu(MENU_SET *p_menu_set, cons
237                                                  p_menu_set->p_menu[i]->screen.show = 1;                                                  p_menu_set->p_menu[i]->screen.show = 1;
238                                                  strncpy(temp,                                                  strncpy(temp,
239                                                                  buffer + pmatch[1].rm_so,                                                                  buffer + pmatch[1].rm_so,
240                                                                  pmatch[1].rm_eo - pmatch[1].rm_so);                                                                  (size_t)(pmatch[1].rm_eo - pmatch[1].rm_so));
241                                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';                                                  temp[pmatch[1].rm_eo - pmatch[1].rm_so] = '\0';
242                                                  p_menu_set->p_menu[i]->screen.row = atoi(temp);                                                  p_menu_set->p_menu[i]->screen.row = atoi(temp);
243                                                  strncpy(temp,                                                  strncpy(temp,
244                                                                  buffer + pmatch[2].rm_so,                                                                  buffer + pmatch[2].rm_so,
245                                                                  pmatch[2].rm_eo - pmatch[2].rm_so);                                                                  (size_t)(pmatch[2].rm_eo - pmatch[2].rm_so));
246                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';                                                  temp[pmatch[2].rm_eo - pmatch[2].rm_so] = '\0';
247                                                  p_menu_set->p_menu[i]->screen.col = atoi(temp);                                                  p_menu_set->p_menu[i]->screen.col = atoi(temp);
248                                                  strncpy(temp,                                                  strncpy(temp,
249                                                                  buffer + pmatch[3].rm_so,                                                                  buffer + pmatch[3].rm_so,
250                                                                  pmatch[3].rm_eo - pmatch[3].rm_so);                                                                  (size_t)(pmatch[3].rm_eo - pmatch[3].rm_so));
251                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';                                                  temp[pmatch[3].rm_eo - pmatch[3].rm_so] = '\0';
252                                                  sprintf(p_menu_set->p_menu[i]->screen.filename,                                                  snprintf(p_menu_set->p_menu[i]->screen.filename,
253                                                                  "%s/MENU_SCR_%s", MENU_TEMP_DIR, temp);                                                                   sizeof(p_menu_set->p_menu[i]->screen.filename),
254                                                                     "%s/MENU_SCR_%s", MENU_TEMP_DIR, temp);
255                                                  continue;                                                  continue;
256                                          }                                          }
257                                  }                                  }


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

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