diff options
author | Silvan Jegen <s.jegen@gmail.com> | 2015-10-04 16:20:25 +0200 |
---|---|---|
committer | Silvan Jegen <s.jegen@gmail.com> | 2015-10-04 16:20:25 +0200 |
commit | 6034949850ade2dbd49836f77a9765ccf8354355 (patch) | |
tree | 3fdc1412a64b55ef669a3e45fb268d5c99213241 | |
parent | 5b96f28f61449b60fe03dce68b052a7a3f9dc588 (diff) |
Make the tag reader work
-rw-r--r-- | unxml.go | 22 |
1 files changed, 10 insertions, 12 deletions
@@ -85,10 +85,13 @@ func (r *Reader) Read(out []byte) (int, error) { lenlr := len(r.lastread) if lenlr > 0 { - n = copy(out[0:], r.lastread) + n = copy(out, r.lastread) r.count += n - r.lastread = make([]byte, len(out)) - lenout -= n + if n < lenlr { + r.lastread = r.lastread[n:] + return r.count, nil + } + r.lastread = make([]byte, lenout) } for { @@ -100,15 +103,10 @@ func (r *Reader) Read(out []byte) (int, error) { case html.TextToken: text := r.tokenizer.Text() - lentext := len(text) - if lentext <= lenout { - n = copy(out[r.count:], text) - r.count += n - lenout -= n - } else { - n = copy(out[r.count:], text[:lenout-1]) - r.count += n - r.lastread = text[lenout-1:] + n = copy(out[r.count:], text) + r.count += n + if n < len(text) { + r.lastread = text[n:] return r.count, err } |