Eric Blake <ebb9 <at> byu.net> writes: > > #elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, > Cygwin */ > > fp->_p = fp->_bf._base; > > fp->_r = 0; > > fp->_w = ((fp->_flags & (__SLBF | __SNBF) == 0) /* fully buffered? */
Order of operations. I'm glad to know I'm not the only one that makes this mistake. Checking this in as obvious; unfortunately, it still doesn't solve the fpurge crash of cygwin. 2007-04-16 Eric Blake <[EMAIL PROTECTED]> * lib/fpurge.c (fpurge): Fix order of operation flub. diff --git a/lib/fpurge.c b/lib/fpurge.c index dc56c8f..e5a5597 100644 --- a/lib/fpurge.c +++ b/lib/fpurge.c @@ -33,7 +33,7 @@ fpurge (FILE *fp) #elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwi n */ fp->_p = fp->_bf._base; fp->_r = 0; - fp->_w = ((fp->_flags & (__SLBF | __SNBF) == 0) /* fully buffered? */ + fp->_w = ((fp->_flags & (__SLBF | __SNBF)) == 0 /* fully buffered? */ ? fp->_bf._size : 0); #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, mingw */