diff options
author | Bruno Haible <bruno@clisp.org> | 2008-04-26 18:12:05 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2008-04-26 18:12:05 +0200 |
commit | 569eba622c635a2bd19408ff284cf07804012c54 (patch) | |
tree | 033970ba77c2441be3786b1bbbf416fd9aaeafe5 /lib/freadahead.c | |
parent | 0bdd1c6888fbf29226eb338479097b20a117c344 (diff) | |
download | gnulib-569eba622c635a2bd19408ff284cf07804012c54.tar.gz |
New private include file lib/stdio-impl.h.
Diffstat (limited to 'lib/freadahead.c')
-rw-r--r-- | lib/freadahead.c | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/lib/freadahead.c b/lib/freadahead.c index 3b4ac26cb0..12e4bd1048 100644 --- a/lib/freadahead.c +++ b/lib/freadahead.c @@ -19,6 +19,8 @@ /* Specification. */ #include "freadahead.h" +#include "stdio-impl.h" + size_t freadahead (FILE *fp) { @@ -29,16 +31,6 @@ freadahead (FILE *fp) + (fp->_flags & _IO_IN_BACKUP ? fp->_IO_save_end - fp->_IO_save_base : 0); #elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwin */ -# if defined __NetBSD__ || defined __OpenBSD__ - struct __sfileext - { - struct __sbuf _ub; /* ungetc buffer */ - /* More fields, not relevant here. */ - }; -# define HASUB(fp) (((struct __sfileext *) (fp)->_ext._base)->_ub._base != NULL) -# else -# define HASUB(fp) ((fp)->_ub._base != NULL) -# endif if ((fp->_flags & __SWR) != 0 || fp->_r < 0) return 0; return fp->_r @@ -52,26 +44,9 @@ freadahead (FILE *fp) (fp->_ungetc_count == 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount) */ return (fp->_rcount > 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount); #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ -# if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ -# define fp_ ((struct { unsigned char *_ptr; \ - unsigned char *_base; \ - unsigned char *_end; \ - long _cnt; \ - int _file; \ - unsigned int _flag; \ - } *) fp) if ((fp_->_flag & _IOWRT) != 0) return 0; return fp_->_cnt; -# else -# if defined _SCO_DS /* OpenServer */ -# define _flag __flag -# define _cnt __cnt -# endif - if ((fp->_flag & _IOWRT) != 0) - return 0; - return fp->_cnt; -# endif #elif defined __UCLIBC__ /* uClibc */ # ifdef __STDIO_BUFFERS if (fp->__modeflags & __FLAG_WRITING) |