diff options
author | Nicolas Despres <nicolas.despres@gmail.com> | 2012-07-28 12:41:20 (GMT) |
---|---|---|
committer | Nicolas Despres <nicolas.despres@gmail.com> | 2012-07-31 07:24:52 (GMT) |
commit | 8b590881013a05fd5017aa94185a02f6b7d09758 (patch) | |
tree | e83647d4ae44cbaa6f7401b350980f74adb06034 /src/util.cc | |
parent | b26f978ac3d7c5fd91de675bba62f31f704e0e04 (diff) | |
download | Ninja-8b590881013a05fd5017aa94185a02f6b7d09758.zip Ninja-8b590881013a05fd5017aa94185a02f6b7d09758.tar.gz Ninja-8b590881013a05fd5017aa94185a02f6b7d09758.tar.bz2 |
Re-factor elide code and test it.
Diffstat (limited to 'src/util.cc')
-rw-r--r-- | src/util.cc | 13 |
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; +} |