--- fortune-mod-1.2.1/util/strfile.c.orig 2007-07-27 00:40:54.687140050 +0100 +++ fortune-mod-1.2.1/util/strfile.c 2007-07-27 00:41:14.184165656 +0100 @@ -144,7 +135,7 @@ typedef struct { char first; - off_t pos; + int32_t pos; } STR; @@ -159,7 +150,7 @@ int Xflag = FALSE; /* set rotated bit */ long Num_pts = 0; /* number of pointers/strings */ -off_t *Seekpts; +int32_t *Seekpts; FILE *Sort_1, *Sort_2; /* pointers for sorting */ @@ -237,9 +228,9 @@ * add_offset: * Add an offset to the list, or write it out, as appropriate. */ -void add_offset(FILE * fp, off_t off) +void add_offset(FILE * fp, int32_t off) { - off_t net; + int32_t net; if (!STORING_PTRS) { @@ -258,9 +249,9 @@ * fix_last_offset: * Used when we have two separators in a row. */ -void fix_last_offset(FILE * fp, off_t off) +void fix_last_offset(FILE * fp, int32_t off) { - off_t net; + int32_t net; if (!STORING_PTRS) { @@ -333,7 +324,7 @@ do_order(void) { register long i; - register off_t *lp; + register int32_t *lp; register STR *fp; Sort_1 = fopen(Infile, "r"); @@ -384,8 +375,8 @@ void randomize(void) { register int cnt, i; - register off_t tmp; - register off_t *sp; + register int32_t tmp; + register int32_t *sp; extern time_t time(time_t *); srandom((int) (time((time_t *) NULL) + getpid())); @@ -422,7 +413,7 @@ { register unsigned char *sp; register FILE *inf, *outf; - register off_t last_off, length, pos, *p; + register int32_t last_off, length, pos, *p; register int first, cnt; register char *nsp; register STR *fp; @@ -514,14 +505,19 @@ if (!Sflag) { printf("\"%s\" created\n", Outfile); - if (Num_pts == 2) - puts("There was 1 string"); + if (Num_pts == 1) + puts("There was no string"); else - printf("There were %ld strings\n", Num_pts - 1); - printf("Longest string: %lu byte%s\n", Tbl.str_longlen, - Tbl.str_longlen == 1 ? "" : "s"); - printf("Shortest string: %lu byte%s\n", Tbl.str_shortlen, - Tbl.str_shortlen == 1 ? "" : "s"); + { + if (Num_pts == 2) + puts("There was 1 string"); + else + printf("There were %ld strings\n", Num_pts - 1); + printf("Longest string: %lu byte%s\n", Tbl.str_longlen, + Tbl.str_longlen == 1 ? "" : "s"); + printf("Shortest string: %lu byte%s\n", Tbl.str_shortlen, + Tbl.str_shortlen == 1 ? "" : "s"); + } } fseek(outf, (off_t) 0, 0); @@ -533,12 +529,19 @@ Tbl.str_longlen = htonl(Tbl.str_longlen); Tbl.str_shortlen = htonl(Tbl.str_shortlen); Tbl.str_flags = htonl(Tbl.str_flags); - fwrite((char *) &Tbl, sizeof Tbl, 1, outf); + fwrite(&Tbl.str_version, sizeof Tbl.str_version, 1, outf); + fwrite(&Tbl.str_numstr, sizeof Tbl.str_numstr, 1, outf); + fwrite(&Tbl.str_longlen, sizeof Tbl.str_longlen, 1, outf); + fwrite(&Tbl.str_shortlen, sizeof Tbl.str_shortlen, 1, outf); + fwrite(&Tbl.str_flags, sizeof Tbl.str_flags, 1, outf); + fwrite( Tbl.stuff, sizeof Tbl.stuff, 1, outf); if (STORING_PTRS) { for (p = Seekpts, cnt = Num_pts; cnt--; ++p) + { *p = htonl(*p); - fwrite((char *) Seekpts, sizeof *Seekpts, (int) Num_pts, outf); + fwrite(p, sizeof *p, 1, outf); + } } fclose(outf); exit(0); --- fortune-mod-1.2.1/util/strfile.h 2000-01-29 11:14:34.000000000 +0000 +++ fortune-mod-1.2.1/util/strfile.h 2007-07-27 00:25:46.825640014 +0100 @@ -38,24 +38,19 @@ * @(#)strfile.h 8.1 (Berkeley) 5/31/93 */ -/* Modified Jan 2000, Chris Ausbrooks - * + Changed VERSION to FILE_VERSION to avoid warnings caused by - * automake/autoconf. - */ - #define STR_ENDSTRING(line,tbl) \ ((line)[0] == (tbl).str_delim && (line)[1] == '\n') typedef struct { /* information table */ -#define FILE_VERSION 1 - unsigned long str_version; /* version number */ - unsigned long str_numstr; /* # of strings in the file */ - unsigned long str_longlen; /* length of longest string */ - unsigned long str_shortlen; /* length of shortest string */ +#define FILE_VERSION 2 + u_int32_t str_version; /* version number */ + u_int32_t str_numstr; /* # of strings in the file */ + u_int32_t str_longlen; /* length of longest string */ + u_int32_t str_shortlen; /* length of shortest string */ #define STR_RANDOM 0x1 /* randomized pointers */ #define STR_ORDERED 0x2 /* ordered pointers */ #define STR_ROTATED 0x4 /* rot-13'd text */ - unsigned long str_flags; /* bit field for flags */ - unsigned char stuff[4]; /* long aligned space */ + u_int32_t str_flags; /* bit field for flags */ + u_int8_t stuff[4]; /* long aligned space */ #define str_delim stuff[0] /* delimiting character */ } STRFILE;