aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2016-04-15 13:13:09 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-04-15 14:09:19 +0000
commitcb7e91091fb75d3bde308ca0766dbb51ffbf40bf (patch)
tree842a8ba2eb04b5ebc0acbd6b419c1386ff64c5da /src/main/java/com
parent1b25ce2028fe36d614a08478c703754e3b5ebd69 (diff)
Make LineWrappingAnsiTerminalWriter more efficient
...by only starting the new line, if needed and not already if the last usable character of the line is written. -- Change-Id: I86519389fe64fe74ba9045be07483ce5f55d5e9a Reviewed-on: https://bazel-review.googlesource.com/#/c/3384 MOS_MIGRATED_REVID=119949042
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/io/LineWrappingAnsiTerminalWriter.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/util/io/LineWrappingAnsiTerminalWriter.java b/src/main/java/com/google/devtools/build/lib/util/io/LineWrappingAnsiTerminalWriter.java
index 66c6d3b4c2..fa13fd6453 100644
--- a/src/main/java/com/google/devtools/build/lib/util/io/LineWrappingAnsiTerminalWriter.java
+++ b/src/main/java/com/google/devtools/build/lib/util/io/LineWrappingAnsiTerminalWriter.java
@@ -48,13 +48,16 @@ public class LineWrappingAnsiTerminalWriter implements AnsiTerminalWriter {
if (c == '\n') {
terminalWriter.newline();
position = 0;
- } else if (position + 2 < width) {
+ } else if (position + 1 < width) {
terminalWriter.append(Character.toString(c));
position++;
} else {
- terminalWriter.append(new String(new char[] {c, continuationCharacter}));
+ // The last usable character of the line was already been written,
+ // hence we have to start a continuation before writing the symbol.
+ terminalWriter.append(Character.toString(continuationCharacter));
terminalWriter.newline();
- position = 0;
+ terminalWriter.append(Character.toString(c));
+ position = 1;
}
}