diff options
author | 2016-04-15 13:13:09 +0000 | |
---|---|---|
committer | 2016-04-15 14:09:19 +0000 | |
commit | cb7e91091fb75d3bde308ca0766dbb51ffbf40bf (patch) | |
tree | 842a8ba2eb04b5ebc0acbd6b419c1386ff64c5da /src/main/java/com | |
parent | 1b25ce2028fe36d614a08478c703754e3b5ebd69 (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.java | 9 |
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; } } |