summaryrefslogtreecommitdiffstats
path: root/src/util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.cc')
-rw-r--r--src/util.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/util.cc b/src/util.cc
index ca05292..cb3e141 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -311,3 +311,16 @@ double GetLoadAverage()
return GetLoadAverage_unix();
#endif // _WIN32
}
+
+string ElideMiddle(const string& str, size_t width)
+{
+ const int kMargin = 3; // Space for "...".
+ string result = str;
+ if (result.size() + kMargin > width) {
+ int elide_size = (width - kMargin) / 2;
+ result = result.substr(0, elide_size)
+ + "..."
+ + result.substr(result.size() - elide_size, elide_size);
+ }
+ return result;
+}