22 lines
605 B
Diff
22 lines
605 B
Diff
Index: lib/libc/stdio/fflush.c
|
|
===================================================================
|
|
--- lib/libc/stdio/fflush.c.orig
|
|
+++ lib/libc/stdio/fflush.c
|
|
@@ -124,11 +124,13 @@
|
|
t = _swrite(fp, (char *)p, n);
|
|
if (t <= 0) {
|
|
/* Reset _p and _w. */
|
|
- if (p > fp->_p) /* Some was written. */
|
|
+ if (p > fp->_p) {
|
|
+ /* Some was written. */
|
|
memmove(fp->_p, p, n);
|
|
- fp->_p += n;
|
|
- if ((fp->_flags & (__SLBF | __SNBF)) == 0)
|
|
- fp->_w -= n;
|
|
+ fp->_p += n;
|
|
+ if ((fp->_flags & (__SLBF | __SNBF)) == 0)
|
|
+ fp->_w -= n;
|
|
+ }
|
|
fp->_flags |= __SERR;
|
|
return (EOF);
|
|
}
|