--- /dev/null
+--- 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 <weed@bucket.pp.ualr.edu>
+- * + 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;