diff options
Diffstat (limited to 'lib/__fpending.c')
-rw-r--r-- | lib/__fpending.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/__fpending.c b/lib/__fpending.c new file mode 100644 index 000000000..11f4981ea --- /dev/null +++ b/lib/__fpending.c @@ -0,0 +1,43 @@ +size_t +__fpending (FILE *fp) +{ +#if FPENDING_GLIBC2 + return fp->_IO_write_ptr - fp->_IO_write_base; +#endif + +#if FPENDING__PTR + /* Traditional Unix */ + return fp->_ptr - fp->_base; +#endif + +#if FPENDING__P + /* BSD */ + return fp->_p - fp->_bf._base; +#endif + +#if FPENDING__P + /* SCO, Unixware */ + return fp->__ptr - fp->__base; +#endif + +#if FPENDING__BUFP + /* old glibc? */ + return fp->__bufp - fp->__buffer; +#endif + +#if FPENDING__PPTR + /* old glibc iostream? */ + return fp->_pptr - fp->_pbase; +#endif + +#if FPENDING__PTR_DEREF + /* VMS */ + return (*fp)->_ptr - (*fp)->_base; +#endif + +#if FPENDING_NOT_AVAILABLE + /* e.g., DGUX R4.11 */ + return 1; /* i.e. the info is not available */ +#endif + +} |