summaryrefslogtreecommitdiffstats
path: root/src/util.cc
diff options
context:
space:
mode:
authorNicolas Despres <nicolas.despres@gmail.com>2012-07-28 12:41:20 (GMT)
committerNicolas Despres <nicolas.despres@gmail.com>2012-07-31 07:24:52 (GMT)
commit8b590881013a05fd5017aa94185a02f6b7d09758 (patch)
treee83647d4ae44cbaa6f7401b350980f74adb06034 /src/util.cc
parentb26f978ac3d7c5fd91de675bba62f31f704e0e04 (diff)
downloadNinja-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.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;
+}