210{
211
212 FILE *infile=NULL;
213
217 int linecount = 0;
218
222
223 int new_count = 0;
224 int already_print = 0;
225
226 int cnt, size;
227 int *tab;
228
229
230
231
232
233
234
235 if (infilename != NULL)
236 {
237 infile = fopen(infilename,"r");
238 }
239
240
241 if (infile == NULL)
242 {
243
244
245
246
247
248
250
251
252 return;
253 }
254
255
256
257
258
259
260
262 rewind(infile);
264
267
269
270
271
272
273
274 rewind(infile);
275 while ( (
analyse_getline(line, infile, infilename, &linecount) != -1) &&
276 ( strncmp(line, "/END", 4) != 0 ))
277 {
278
279
280 if (strstr(line, "/ANALYSE/MESSAGE/") != NULL)
281 {
282
284 sscanf(key, "%d", &id );
285
288
289 if (work_error == NULL)
290 {
292 {
293 if ( already_print == 0)
294 {
296 already_print = 1;
297 }
298 continue;
299 }
300
301 work_error = *error_p + new_count;
302 new_count++;
303
305
306
309
311
312 }
313
315 if ( (strncmp(key, "TITLE", 5) == 0) ||
316 (strncmp(key, "DESCRIPTION", 11) == 0) )
317 {
318
320
321
322 if (strncmp(key, "TITLE", 5)== 0)
323 {
325 }
326 else if (strncmp(key, "DESCRIPTION", 11)== 0)
327 {
329 }
330 }
331 }
332 }
333
334 fclose(infile);
335}
#define ANALYSE_ERROR_DESCRIPTION
#define ANALYSE_ERROR_TITLE
#define ANALYSE_SIZE_OF_LINE
static analyse_error_info_t * error_create(int size)
int analyse_getkey(int pos, char *line, char *name)
int analyse_getline(char line[], FILE *infile, char *infilename, int *linecount)
void analyse_free(void *block)
void Analyse_Print_Error_Level(char *text, int level)
void Analyse_Print_Debug(char *text)
recursive subroutine qsort(a, idx, first, last)