X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sources%2FFortuneParse.c;h=2312167b82bb28bd9db943b71d13a64432a57175;hp=962ffc53e78da873abd07a96889086c09a114db0;hb=fa15a3f1ecd64efd8440e46d398fd9976abc3d25;hpb=198add70c8604fe7ffb05689aa693d782102917e diff --git a/sources/FortuneParse.c b/sources/FortuneParse.c index 962ffc5..2312167 100644 --- a/sources/FortuneParse.c +++ b/sources/FortuneParse.c @@ -28,20 +28,20 @@ * Read n fortunes from fortune file file, and put it into the * string array fortune * - * $Id: FortuneParse.c,v 1.1 2002/08/18 10:34:10 piccardi Exp $ - * ****************************************************************/ /* * Include needed headers */ -#include /* predefined types */ -#include /* */ -#include /* include unix standard library */ -#include /* include standard I/O library */ -#include /* standard library */ -#include /* ANSI C standard string */ -#include /* error definitions */ -#include /* */ +#include /* primitive system data types */ +#include /* file characteristics constants and functions */ +#include /* unix standard library */ +#include /* standard I/O library */ +#include /* C standard library */ +#include /* C strings library */ +#include /* error definitions and routines */ +#include /* file control functions */ + +#include "macros.h" /* Subroutines declaration */ extern void usage(void); @@ -51,13 +51,14 @@ int FortuneParse(char *file, char **fortune, int n) /* Variables definition */ FILE *fortunefile; char line[80]; - int i; + int i, len; /* * fortune file scanning, read string in memory */ fortunefile = fopen(file,"r"); if (fortunefile == NULL) { /* on open error exit */ - perror("Opening fortune file"); + printf("On file %s\n", file); + perror("Cannot open file"); exit(-1); } i = 0; @@ -67,16 +68,18 @@ int FortuneParse(char *file, char **fortune, int n) perror("Read error"); exit(-1); } - if (line[0]=='\n') { + debug("i=%d, line=%s", i, line); + if (line[0]=='%') { if (fortune[i]!=NULL) i++; continue; } + len = strlen(line) + 1; if (fortune[i]==NULL) { - fortune[i] = (char *) malloc(strlen(line)+1); - strncpy(fortune[i], line, strlen(line)+1); + fortune[i] = malloc(len); + strncpy(fortune[i], line, len); } else { - fortune[i] = (char *) realloc(fortune[i], strlen(line)+1); - strncat(fortune[i], line, strlen(line)+1); + fortune[i] = realloc(fortune[i], strlen(fortune[i])+len+1); + strncat(fortune[i], line, len); } } while (i