# HG changeset patch # User Bruno Haible # Date 1261222224 -3600 # Node ID 717d6fde6006ea2361c46dcf1bb3dafbf6925d25 # Parent fd1286c1d1b905132ace9f54c1e328debf833d73 fflush: tweak diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ + +2009-12-19 Bruno Haible + + fflush: tweak + * lib/fflush.c (update_fpos_cache): Don't use fpos_t on Cygwin. + * lib/fseeko.c (rpl_fseeko): Likewise. + 2009-12-16 José E. Marchesi (tiny change) * lib/gl_list.h: Fix typo in comment. diff --git a/lib/fflush.c b/lib/fflush.c --- a/lib/fflush.c +++ b/lib/fflush.c @@ -91,6 +91,11 @@ update_fpos_cache (FILE *fp, off_t pos) { #if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ +# if defined __CYGWIN__ + /* fp_->_offset is typed as an integer. */ + fp_->_offset = pos; +# else + /* fp_->_offset is an fpos_t. */ /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct containing a single off_t member. */ @@ -101,6 +106,7 @@ } u; u.o = pos; fp_->_offset = u.f; +# endif fp_->_flags |= __SOFF; #endif } diff --git a/lib/fseeko.c b/lib/fseeko.c --- a/lib/fseeko.c +++ b/lib/fseeko.c @@ -110,6 +110,11 @@ #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_flags &= ~_IO_EOF_SEEN; #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ +# if defined __CYGWIN__ + /* fp_->_offset is typed as an integer. */ + fp_->_offset = pos; +# else + /* fp_->_offset is an fpos_t. */ { /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct @@ -122,6 +127,7 @@ u.o = pos; fp_->_offset = u.f; } +# endif fp_->_flags |= __SOFF; fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */