summaryrefslogtreecommitdiffstats
path: root/src/util.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2012-08-01 23:12:55 (GMT)
committerEvan Martin <martine@danga.com>2012-08-01 23:12:55 (GMT)
commitd82e806729bed17bf8fba738ed63eb740863c79e (patch)
tree5dd194c3aa466e5b0a597efd27e7fb478256c261 /src/util.cc
parent080314c22ff73fd9e6bc085e0e7053a09a3a6592 (diff)
parent8b590881013a05fd5017aa94185a02f6b7d09758 (diff)
downloadNinja-d82e806729bed17bf8fba738ed63eb740863c79e.zip
Ninja-d82e806729bed17bf8fba738ed63eb740863c79e.tar.gz
Ninja-d82e806729bed17bf8fba738ed63eb740863c79e.tar.bz2
Merge branch 'factor-elide-middle' of git://github.com/polrop/ninja
Conflicts: src/util.cc
Diffstat (limited to 'src/util.cc')
-rw-r--r--src/util.cc12
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;
+}