summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/wbuf.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2007-07-13 20:37:53 +0000
committerEric Blake <eblake@redhat.com>2007-07-13 20:37:53 +0000
commit08146e5adbceb673cc2c6c4adee05ba37f709095 (patch)
tree2bda91075f62fa6b54750cca0346838ebf1a9f28 /newlib/libc/stdio/wbuf.c
parentb71fb40215c79d607d8f24dc6af0c28d5ce9ccaf (diff)
downloadcygnal-08146e5adbceb673cc2c6c4adee05ba37f709095.tar.gz
cygnal-08146e5adbceb673cc2c6c4adee05ba37f709095.tar.bz2
cygnal-08146e5adbceb673cc2c6c4adee05ba37f709095.zip
Fix fflush issues.
* libc/stdio/fflush.c (_fflush_r): New function. (fflush): Fix reentrancy and large offset behavior. * libc/include/stdio.h (_fflush_r): Add prototype. * libc/stdio/fclose.c (_fclose_r): All fflush callers changed. * libc/stdio/freopen.c (_freopen_r): Likewise. * libc/stdio/fseek.c (_fseek_r): Likewise. * libc/stdio/ftell.c (_ftell_r): Likewise. * libc/stdio/fvwrite.c (__sfvwrite_r): Likewise. * libc/stdio/refill.c (__srefill_r): Likewise. * libc/stdio/setvbuf.c (setvbuf): Likewise. * libc/stdio/ungetc.c (_ungetc_r): Likewise. * libc/stdio/vfprintf.c (__sbprintf): Likewise. * libc/stdio/wbuf.c (__swbuf_r): Likewise. * libc/stdio64/freopen64.c (_freopen64_r): Likewise. * libc/stdio64/fseeko64.c (_fseeko64_r): Likewise. Defer to 32-bit version if not large file. * libc/stdio64/ftello64.c (_ftello64_r): Likewise. * libc/stdio64/tmpfile64.c (_tmpfile64_r): Avoid compile warning.
Diffstat (limited to 'newlib/libc/stdio/wbuf.c')
-rw-r--r--newlib/libc/stdio/wbuf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/newlib/libc/stdio/wbuf.c b/newlib/libc/stdio/wbuf.c
index ea8f64d8d..bd7f15d9b 100644
--- a/newlib/libc/stdio/wbuf.c
+++ b/newlib/libc/stdio/wbuf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1990, 2007 The Regents of the University of California.
+ * Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
@@ -74,14 +74,14 @@ _DEFUN(__swbuf_r, (ptr, c, fp),
n = fp->_p - fp->_bf._base;
if (n >= fp->_bf._size)
{
- if (fflush (fp))
+ if (_fflush_r (ptr, fp))
return EOF;
n = 0;
}
fp->_w--;
*fp->_p++ = c;
if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n'))
- if (fflush (fp))
+ if (_fflush_r (ptr, fp))
return EOF;
return c;
}