From 43f25520a0c5cde0fff8e57afe8aee6997201977 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Sun, 6 Oct 2019 17:51:20 -0700 Subject: [PATCH] Don't include DeleteLine in progress length I incorrectly included the DeleteLine in the progress line length and this could cause certain progress lines to be incorrectly reported as multi line when they actually fit on a single terminal line. --- .../scala/sbt/internal/util/ConsoleAppender.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala index c5d8cbea9..d205eb3bf 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala @@ -349,13 +349,18 @@ class ConsoleAppender private[ConsoleAppender] ( val width = ConsoleAppender.terminalWidth val len: Int = progress.foldLeft(progress.length)(_ + terminalLines(width)(_)) deleteConsoleLines(blankZone + pad) - progress.foreach(out.println) + progress.foreach(printProgressLine) out.print(cursorUp(blankZone + len + padding.get)) } } out.flush() } + private def printProgressLine(line: String): Unit = { + out.print(DeleteLine) + out.println(line) + } + /** * Receives a new task report and replaces the old one. In the event that the new * report has fewer lines than the previous report, padding lines are added on top @@ -369,7 +374,7 @@ class ConsoleAppender private[ConsoleAppender] ( val sorted = pe.items.sortBy(x => x.elapsedMicros) val info = sorted map { item => val elapsed = item.elapsedMicros / 1000000L - s"$DeleteLine | => ${item.name} ${elapsed}s" + s" | => ${item.name} ${elapsed}s" } val width = ConsoleAppender.terminalWidth @@ -383,7 +388,7 @@ class ConsoleAppender private[ConsoleAppender] ( deleteConsoleLines(newPadding) deleteConsoleLines(blankZone) - info.foreach(i => out.println(i)) + info.foreach(printProgressLine) out.print(cursorUp(blankZone + currentLength + newPadding)) out.flush()