diff options
Diffstat (limited to 'src/util.cc')
-rw-r--r-- | src/util.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/util.cc b/src/util.cc index 4ce610b..be2347c 100644 --- a/src/util.cc +++ b/src/util.cc @@ -330,3 +330,15 @@ double GetLoadAverage() { return loadavg[0]; } #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; +} |