From 0a4e44b8f8b164bdf38a78113bd6dd318f13584b Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Wed, 17 Jul 2019 23:03:00 +0000 Subject: [PATCH] Allow for bufio Readers that deliver data in chunks (like our unit test Reader) --- read/read.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/read/read.go b/read/read.go index f1e81cc..336c4d2 100644 --- a/read/read.go +++ b/read/read.go @@ -157,12 +157,16 @@ func (buf *Buffer) fill(minBytes int) { } buf.grow(minBytes) - n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)]) - buf.buffer = buf.buffer[:bufLen+n] + for bufLen < minBytes { + n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)]) + bufLen += n + buf.buffer = buf.buffer[:bufLen] - if err != nil { - buf.err = err - buf.errOffset = bufLen + n + if err != nil { + buf.err = err + buf.errOffset = bufLen + break + } } }