Skip to content
Snippets Groups Projects
Verified Commit a1ebe321 authored by Tom Almeida's avatar Tom Almeida
Browse files

Ensure that _IONBF would be respected when writing

parent 40c3d28a
No related branches found
No related tags found
No related merge requests found
Pipeline #936 failed
......@@ -120,7 +120,11 @@ impl FILE {
platform::write(self.fd, &f_buf[advance..]) + platform::write(self.fd, to_write)
};
if count == rem as isize {
self.write = Some((self.unget, self.unget, self.buf.len() - 1));
self.write = if self.buf.len() == 0 {
Some((0, 0, 0))
} else {
Some((self.unget, self.unget, self.buf.len() - 1))
};
return to_write.len();
}
if count < 0 {
......@@ -852,6 +856,11 @@ pub extern "C" fn setvbuf(stream: &mut FILE, buf: *mut c_char, mode: c_int, size
if mode != _IONBF {
vec![0u8; 1]
} else {
if let Some(_) = stream.write {
stream.write = Some((0, 0, 0));
} else if let Some(_) = stream.read {
stream.read = Some((0, 0));
}
Vec::new()
}
} else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment