From 8fa6c4b0000e2dc27fce9220db1a5eb8bf468e81 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 3 Jul 2023 18:39:02 +0300 Subject: [PATCH] Do not require explicit Read for zero length --- ns_test.go | 14 +------------- r.go | 8 +++++++- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/ns_test.go b/ns_test.go index c3a138a..97e8deb 100644 --- a/ns_test.go +++ b/ns_test.go @@ -107,19 +107,7 @@ func TestErrors(t *testing.T) { b = bytes.NewBufferString("0:foobar,") r = NewReader(b) - if _, err := r.Next(); err != nil { - t.FailNow() - } - if _, err := r.Read(data); err == nil { - t.FailNow() - } - - b = bytes.NewBufferString("0:foobar") - r = NewReader(b) - if _, err := r.Next(); err != nil { - t.FailNow() - } - if _, err := r.Read(data); err == nil { + if _, err := r.Next(); err == nil { t.FailNow() } diff --git a/r.go b/r.go index 9b8f510..098ee49 100644 --- a/r.go +++ b/r.go @@ -58,7 +58,13 @@ func (r *Reader) Next() (uint64, error) { } r.left = size r.eof = false - return size, nil + if r.left == 0 { + err = r.checkTerminator() + if err == nil { + r.eof = true + } + } + return size, err } func (r *Reader) checkTerminator() error { -- 2.44.0