diff options
| -rw-r--r-- | src/libstd/io/buffered.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs index ccebf3682c2..bc26b63c153 100644 --- a/src/libstd/io/buffered.rs +++ b/src/libstd/io/buffered.rs @@ -762,8 +762,10 @@ impl<W: Write> Write for LineWriter<W> { match memchr::memrchr(b'\n', buf) { Some(i) => { let n = try!(self.inner.write(&buf[..i + 1])); - if n != i + 1 { return Ok(n) } - try!(self.inner.flush()); + if n != i + 1 || self.inner.flush().is_err() { + // Do not return errors on partial writes. + return Ok(n); + } self.inner.write(&buf[i + 1..]).map(|i| n + i) } None => self.inner.write(buf), |
