From f5293d65083b5b9e68b0690f59555c9b34512a69 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 10 Jul 2016 20:28:22 +0200 Subject: ReadAt --- meta/info.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'meta') diff --git a/meta/info.go b/meta/info.go index 9dd1178..5ec35a7 100644 --- a/meta/info.go +++ b/meta/info.go @@ -124,16 +124,18 @@ func (i Info) ReadAt(b []byte, off int64) (n int, err error) { flen := i.Files[n].Length - if int64(len(b)) <= i.Files[n].Length { + if int64(len(b))+foff <= flen { return fd.ReadAt(b, foff) } - nn, err := fd.ReadAt(b[:flen], foff) + end := flen + foff + + done, err := fd.ReadAt(b[:end], foff) if err != nil { - return nn, err + return done, err } - nnn, err := i.ReadAt(b[flen:], foff+flen) - return nn + nnn, err + next, err := i.ReadAt(b[end:], end) + return done + next, err } func (i Info) String() string { -- cgit v1.2.3