summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/build.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/build.cc b/src/build.cc
index 9adce8f..e72d9d7 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -156,9 +156,10 @@ void BuildStatus::PrintStatus(Edge* edge) {
if ((ioctl(0, TIOCGWINSZ, &size) == 0) && size.ws_col) {
const int kMargin = progress_chars + 3; // Space for [xx/yy] and "...".
if (to_print.size() + kMargin > size.ws_col) {
- int substr = std::min(to_print.size(),
- to_print.size() + kMargin - size.ws_col);
- to_print = "..." + to_print.substr(substr);
+ int elide_size = (size.ws_col - kMargin) / 2;
+ to_print = to_print.substr(0, elide_size)
+ + "..."
+ + to_print.substr(to_print.size() - elide_size, elide_size);
}
}
}