From 23d0ef3da166cbc74daa3b0c4653fbde2426f8e9 Mon Sep 17 00:00:00 2001 From: Mark Karpeles Date: Sat, 11 Apr 2020 20:10:45 +0900 Subject: [PATCH] bug fix, add doc --- item.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/item.go b/item.go index 5f8da55..fc4f45c 100644 --- a/item.go +++ b/item.go @@ -198,6 +198,8 @@ func (f *filepathHndlr) meta() *itemMeta { return &f.m } +// NewItemConcat returns a single Item object actually representing multiple +// items being concatenated. func NewItemConcat(items ...Item) Item { return &itemConcat{items: items} } @@ -222,7 +224,7 @@ func (i *itemConcat) Close() error { func (i *itemConcat) Read(p []byte) (int, error) { for { - if len(i.items) >= i.pos { + if i.pos >= len(i.items) { return 0, io.EOF } @@ -230,6 +232,10 @@ func (i *itemConcat) Read(p []byte) (int, error) { n, err := item.Read(p) if err == io.EOF { i.pos += 1 + if n > 0 { + // this shouldn't happen + return n, nil + } continue } return n, err