1
0
mirror of https://github.com/golang/go synced 2024-11-25 03:07:56 -07:00

give bufio.Writer.WriteString the same signature as

bytes.Buffer.WriteString

Fixes #535.

R=rsc
CC=golang-dev
https://golang.org/cl/189096
This commit is contained in:
Rob Pike 2010-01-16 13:06:50 +11:00
parent 32e2ae0b18
commit 11b459cba8

View File

@ -387,7 +387,7 @@ func (b *Writer) Buffered() int { return b.n }
// Write writes the contents of p into the buffer.
// It returns the number of bytes written.
// If nn < len(p), also returns an error explaining
// If nn < len(p), it also returns an error explaining
// why the write is short.
func (b *Writer) Write(p []byte) (nn int, err os.Error) {
if b.err != nil {
@ -438,9 +438,12 @@ func (b *Writer) WriteByte(c byte) os.Error {
}
// WriteString writes a string.
func (b *Writer) WriteString(s string) os.Error {
// It returns the number of bytes written.
// If the count is less than len(s), it also returns an error explaining
// why the write is short.
func (b *Writer) WriteString(s string) (int, os.Error) {
if b.err != nil {
return b.err
return 0, b.err
}
// Common case, worth making fast.
if b.Available() >= len(s) || len(b.buf) >= len(s) && b.Flush() == nil {
@ -448,12 +451,15 @@ func (b *Writer) WriteString(s string) os.Error {
b.buf[b.n] = s[i]
b.n++
}
return nil
return len(s), nil
}
for i := 0; i < len(s); i++ { // loop over bytes, not runes.
b.WriteByte(s[i])
if b.err != nil {
return i, b.err
}
}
return b.err
return len(s), nil
}
// buffered input and output