From: Mark Thom Date: Sun, 28 Nov 2021 17:21:07 +0000 (-0700) Subject: keep cursor position after writing to byte stream X-Git-Tag: v0.9.0^2~115 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=a87236fea27922cfa4fc07784e6d64c55cbde920;p=scryer-prolog.git keep cursor position after writing to byte stream --- diff --git a/src/machine/streams.rs b/src/machine/streams.rs index 4aeba63e..8e2e2c13 100644 --- a/src/machine/streams.rs +++ b/src/machine/streams.rs @@ -110,7 +110,13 @@ impl Read for ByteStream { impl Write for ByteStream { #[inline] fn write(&mut self, buf: &[u8]) -> std::io::Result { - 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]