* 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 $
+ * $Id: FortuneParse.c,v 1.2 2002/08/18 14:38:04 piccardi Exp $
*
****************************************************************/
/*
#include <errno.h> /* error definitions */
#include <fcntl.h> /* */
+#include "macros.h"
+
/* Subroutines declaration */
extern void usage(void);
/* Variables definition */
FILE *fortunefile;
char line[80];
- int i;
+ int i, len;
/*
* fortune file scanning, read string in memory
*/
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<n);
return i;