]> Cypherpunks repositories - gostls13.git/commitdiff
bufio: return nil line from ReadLine on error, as documented
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 2 Nov 2011 15:30:50 +0000 (08:30 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 2 Nov 2011 15:30:50 +0000 (08:30 -0700)
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/5316069

src/pkg/bufio/bufio.go
src/pkg/bufio/bufio_test.go

index f4ed91b24b4a94deadce5ddaa89fe10e040a9683..0b354fda82fa3f999d42b7c1d3626981c2bb0f9b 100644 (file)
@@ -312,6 +312,9 @@ func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error) {
        }
 
        if len(line) == 0 {
+               if err != nil {
+                       line = nil
+               }
                return
        }
        err = nil
index 0285deeb3d18c21a46a7945cdda516ffdc51417e..1d3acea367ff97dda8abab7860ecfa95fd490b9c 100644 (file)
@@ -698,6 +698,17 @@ func TestLinesAfterRead(t *testing.T) {
        }
 }
 
+func TestReadLineNonNilLineOrError(t *testing.T) {
+       r := NewReader(strings.NewReader("line 1\n"))
+       for i := 0; i < 2; i++ {
+               l, _, err := r.ReadLine()
+               if l != nil && err != nil {
+                       t.Fatalf("on line %d/2; ReadLine=%#v, %v; want non-nil line or Error, but not both",
+                               i+1, l, err)
+               }
+       }
+}
+
 type readLineResult struct {
        line     []byte
        isPrefix bool