code: func NewBufferedOutput(output TextOutput, buffer int) *BufferedOutput {
  	if buffer < 0 {
  		buffer = 0
  	}
  	b := &BufferedOutput{
  		o: output,
  		c: make(chan bufferMsg, buffer)}
  	go b.process()
  	return b
  }
docs: // NewBufferedOutput returns a BufferedOutput wrapping output with a buffer
  // size of buffer.