diff --git a/engine.go b/engine.go index 4617ceb0..bf3ea7a3 100644 --- a/engine.go +++ b/engine.go @@ -127,14 +127,13 @@ func (e *engine) render() { continue } if block.VerticalOffset != 0 { - e.renderer.print(e.renderer.changeLine(block.VerticalOffset)) + e.renderer.changeLine(block.VerticalOffset) } switch block.Alignment { case Right: - e.renderer.print(e.renderer.carriageForward()) + e.renderer.carriageForward() blockText := e.renderBlockSegments(block) - cursorMove := e.renderer.setCursorForRightWrite(blockText, block.HorizontalOffset) - e.renderer.print(cursorMove) + e.renderer.setCursorForRightWrite(blockText, block.HorizontalOffset) e.renderer.print(blockText) case Left: e.renderer.print(e.renderBlockSegments(block)) diff --git a/renderer.go b/renderer.go index 9347e14d..5bd2ffc7 100644 --- a/renderer.go +++ b/renderer.go @@ -193,22 +193,22 @@ func (r *Renderer) lenWithoutANSI(str string) int { return count } -func (r *Renderer) carriageForward() string { - return fmt.Sprintf(r.formats.left, 1000) +func (r *Renderer) carriageForward() { + fmt.Printf(r.formats.left, 1000) } -func (r *Renderer) setCursorForRightWrite(text string, offset int) string { +func (r *Renderer) setCursorForRightWrite(text string, offset int) { strippedLen := r.lenWithoutANSI(text) + -offset - return fmt.Sprintf(r.formats.right, strippedLen) + fmt.Printf(r.formats.right, strippedLen) } -func (r *Renderer) changeLine(numberOfLines int) string { +func (r *Renderer) changeLine(numberOfLines int) { position := "B" if numberOfLines < 0 { position = "F" numberOfLines = -numberOfLines } - return fmt.Sprintf(r.formats.linechange, numberOfLines, position) + fmt.Printf(r.formats.linechange, numberOfLines, position) } func (r *Renderer) setConsoleTitle(title string) {