From a2b445a2c93224ca2999ad3a7aa6b4b2a752e7a0 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 6 Sep 2008 13:58:21 +0200 Subject: [PATCH] Add conditional code for SLOW_BUT_NO_HACKS. --- ChangeLog | 7 +++++++ lib/freadahead.c | 4 ++++ lib/freadptr.c | 4 ++++ lib/freadseek.c | 1 + 4 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index 460c4d332..b2a0e2dca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2008-09-06 Bruno Haible + * lib/freadahead.c (freadahead): Add conditional for SLOW_BUT_NO_HACKS. + * lib/freadptr.c (freadptr): Likewise. + * lib/freadseek.c (freadptrinc): Likewise. + Reported by Simon Josefsson. + +2008-09-06 Bruno Haible + * modules/freadptr (License): Change to LGPLv2+. * modules/freadseek (License): Likewise. Suggested by Eric Blake. diff --git a/lib/freadahead.c b/lib/freadahead.c index 15cc70894..2dcf81c30 100644 --- a/lib/freadahead.c +++ b/lib/freadahead.c @@ -19,6 +19,7 @@ /* Specification. */ #include "freadahead.h" +#include #include "stdio-impl.h" size_t @@ -69,6 +70,9 @@ freadahead (FILE *fp) + (fp->_Mode & 0x4000 /* _MBYTE */ ? (fp->_Back + sizeof (fp->_Back)) - fp->_Rback : 0); +#elif defined SLOW_BUT_NO_HACKS /* users can define this */ + abort (); + return 0; #else #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." #endif diff --git a/lib/freadptr.c b/lib/freadptr.c index 6e08b4858..b47e09ffc 100644 --- a/lib/freadptr.c +++ b/lib/freadptr.c @@ -85,6 +85,10 @@ freadptr (FILE *fp, size_t *sizep) return NULL; *sizep = size; return (const char *) fp->_Next; +#elif defined SLOW_BUT_NO_HACKS /* users can define this */ + /* This implementation is correct on any ANSI C platform. It is just + awfully slow. */ + return NULL; #else #error "Please port gnulib freadptr.c to your platform! Look at the definition of fflush, fread, getc, getc_unlocked on your system, then report this to bug-gnulib." #endif diff --git a/lib/freadseek.c b/lib/freadseek.c index f56f8b1eb..4299e82fe 100644 --- a/lib/freadseek.c +++ b/lib/freadseek.c @@ -53,6 +53,7 @@ freadptrinc (FILE *fp, size_t increment) # endif #elif defined __QNX__ /* QNX */ fp->_Next += increment; +#elif defined SLOW_BUT_NO_HACKS /* users can define this */ #else #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report this to bug-gnulib." #endif -- 2.11.0