diff options
Diffstat (limited to 'lib/libc/stdio/setvbuf.c')
| -rw-r--r-- | lib/libc/stdio/setvbuf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/stdio/setvbuf.c b/lib/libc/stdio/setvbuf.c index 1928ae14160b..78e616387269 100644 --- a/lib/libc/stdio/setvbuf.c +++ b/lib/libc/stdio/setvbuf.c @@ -137,11 +137,14 @@ nbf: flags |= __SLBF; if (flags & __SRW) flags &= ~(__SRD | __SWR); - fp->_w = 0; fp->_flags = flags; fp->_bf._base = fp->_p = (unsigned char *)buf; fp->_bf._size = size; fp->_lbfsize = 0; + if (flags & __SWR) + __swsetup(fp); + else + fp->_w = 0; __cleanup = _cleanup; return (ret); |
