canvas.go
func DrawTextVertical(x, y int, text string) {
	PushAttributes()
	defer PopAttributes()

	defText, defBack := TextColor(), BackColor()
	firstdrawn := InClipRect(x, y)

	parser := NewColorParser(text, defText, defBack)
	elem := parser.NextElement()
	for elem.Type != ElemEndOfText {
		if elem.Type == ElemPrintable {
			SetTextColor(elem.Fg)
			SetBackColor(elem.Bg)
			drawn := PutChar(x, y, elem.Ch)
			y += 1
			if firstdrawn && !drawn {
				break
			}
		}

		elem = parser.NextElement()
	}
}
func DrawTextVertical(x, y int, text string) {
	PushAttributes()
	defer PopAttributes()

	defText, defBack := TextColor(), BackColor()
	firstdrawn := InClipRect(x, y)

	parser := NewColorParser(text, defText, defBack)
	elem := parser.NextElement()
	for elem.Type != ElemEndOfText {
		if elem.Type == ElemPrintable {
			SetTextColor(elem.Fg)
			SetBackColor(elem.Bg)
			drawn := PutChar(x, y, elem.Ch)
			y += 1
			if firstdrawn && !drawn {
				break
			}
		}

		elem = parser.NextElement()
	}
}
// DrawTextVertical draws the part of text that is inside the current clipping
// rectangle. DrawTextVertical always paints colorized string. If you want to draw
// raw string then use DrawRawTextVertical function