code: func (v *View) writeRune(x, y int, ch rune) error {
  	v.tainted = true
  
  	x, y, err := v.realPosition(x, y)
  	if err != nil {
  		return err
  	}
  
  	if x < 0 || y < 0 {
  		return errors.New("invalid point")
  	}
  
  	if y >= len(v.lines) {
  		s := make([][]cell, y-len(v.lines)+1)
  		v.lines = append(v.lines, s...)
  	}
  
  	olen := len(v.lines[y])
  
  	var s []cell
  	if x >= len(v.lines[y]) {
  		s = make([]cell, x-len(v.lines[y])+1)
  	} else if !v.Overwrite {
  		s = make([]cell, 1)
  	}
  	v.lines[y] = append(v.lines[y], s...)
  
  	if !v.Overwrite || (v.Overwrite && x >= olen-1) {
  		copy(v.lines[y][x+1:], v.lines[y][x:])
  	}
  	v.lines[y][x] = cell{
  		fgColor: v.FgColor,
  		bgColor: v.BgColor,
  		chr:     ch,
  	}
  
  	return nil
  }
docs: // writeRune writes a rune into the view's internal buffer, at the
  // position corresponding to the point (x, y). The length of the internal
  // buffer is increased if the point is out of bounds. Overwrite mode is
  // governed by the value of View.overwrite.