func()

in pkg/text/colortabwriter.go [55:104]


func (c *ColorTabWriter) Flush() {
	maxWidth := 0
	for _, line := range c.contents {
		// ensure we track a cell width for every cell
		for len(line) > len(c.cellWidths) {
			c.cellWidths = append(c.cellWidths, 0)
		}
		for i, cell := range line {
			cellLen := strlen(cell)
			if cellLen > c.cellWidths[i] {
				c.cellWidths[i] = cellLen
			}
			if cellLen > maxWidth {
				maxWidth = cellLen
			}
		}
	}

	padding := make([]byte, maxWidth+2)
	for i := range padding {
		if debug {
			padding[i] = '.'
		} else {
			padding[i] = ' '
		}
	}

	for _, line := range c.contents {
		if len(line) == 0 {
			continue
		}
		for i, cell := range line {
			// collapse empty columns
			if c.cellWidths[i] == 0 {
				continue
			}
			cellStrLen := strlen(cell)
			cellPadding := c.cellWidths[i] + c.padding - cellStrLen

			if debug {
				c.output.Write([]byte("|"))
			}
			c.output.Write(cell)
			c.output.Write(padding[0:cellPadding])
		}
		c.output.Write([]byte("\n"))
	}
	c.contents = nil
	c.cellWidths = nil
}