From: Russ Cox Date: Tue, 16 Sep 2008 21:15:54 +0000 (-0700) Subject: fix / work around bugs in bufio test X-Git-Tag: weekly.2009-11-06~3197 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4dfc7f0f14aed72dbda24abf48f4fc5fba987186;p=gostls13.git fix / work around bugs in bufio test R=r DELTA=11 (8 added, 0 deleted, 3 changed) OCL=15405 CL=15405 --- diff --git a/src/lib/bufio.go b/src/lib/bufio.go index 323e39ff66..3c29b236c3 100644 --- a/src/lib/bufio.go +++ b/src/lib/bufio.go @@ -291,18 +291,26 @@ func (b *BufRead) ReadLineBytes(delim byte) (line *[]byte, err *os.Error) { return buf, err } +// BUG(bugs/bug102.go): string(empty bytes array) throws error +func ToString(p *[]byte) string { + if len(p) == 0 { + return "" + } + return string(p) +} + // Read until the first occurrence of delim in the input, // returning a new string containing the line. // If savedelim, keep delim in the result; otherwise chop it off. func (b *BufRead) ReadLineString(delim byte, savedelim bool) (line string, err *os.Error) { bytes, e := b.ReadLineBytes(delim) if e != nil { - return string(bytes), e + return ToString(bytes), e } if !savedelim { bytes = bytes[0:len(bytes)-1] } - return string(bytes), nil + return ToString(bytes), nil } diff --git a/test/bufiolib.go b/test/bufiolib.go index b5d7453c1b..a3c05036f7 100644 --- a/test/bufiolib.go +++ b/test/bufiolib.go @@ -121,7 +121,7 @@ var readmakers = []*(p *[]byte) io.Read { func ReadLines(b *bufio.BufRead) string { s := "" for { - s1, e := b.ReadLineString('\n', false) + s1, e := b.ReadLineString('\n', true) if e == bufio.EndOfFile { break }