diff -r dd479b99dcd3 src/pkg/io/ioutil/ioutil.go --- a/src/pkg/io/ioutil/ioutil.go Wed Jul 20 08:39:24 2011 +1000 +++ b/src/pkg/io/ioutil/ioutil.go Tue Jul 19 17:57:14 2011 -0700 @@ -108,6 +108,23 @@ return len(p), nil } +var blackHole = make([]byte, 8192) + +func (devNull) ReadFrom(r io.Reader) (n int64, err os.Error) { + readSize := 0 + for ;; { + junk := blackHole[0:cap(blackHole)] + readSize, err = r.Read(junk) + n += int64(readSize) + if err != nil && err != os.EOF { + return n, err + } else { + return n, nil + } + } + return n, nil // err is EOF, so return nil explicitly +} + // Discard is an io.Writer on which all Write calls succeed // without doing anything. var Discard io.Writer = devNull(0)