]> Repositorios git - scryer-prolog.git/commitdiff
keep cursor position after writing to byte stream
authorMark Thom <[email protected]>
Sun, 28 Nov 2021 17:21:07 +0000 (10:21 -0700)
committerMark Thom <[email protected]>
Fri, 7 Jan 2022 04:44:41 +0000 (21:44 -0700)
src/machine/streams.rs

index 4aeba63e5e3d1f0c0e4eeea039fdb96b3d4eea25..8e2e2c1350288495a46d8f408163697f20a7b3da 100644 (file)
@@ -110,7 +110,13 @@ impl Read for ByteStream {
 impl Write for ByteStream {
     #[inline]
     fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
-        self.0.write(buf)
+        let pos = self.0.position();
+
+        self.0.seek(SeekFrom::End(0))?;
+        let result = self.0.write(buf);
+        self.0.seek(SeekFrom::Start(pos))?;
+
+        result
     }
 
     #[inline]