diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-03-07 12:29:50 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-03-07 12:29:50 +0200 |
commit | b7c0293598d45f052a41c3ed6580d98801280cd7 (patch) | |
tree | 19f519f8ebf4e9da6db31eed54ba8e8ee778907d /build2/utility.cxx | |
parent | 6fa958ee23d0beb62f687d3d9137c774b4960197 (diff) |
Implement compiler guessing, including icc and msvc
Diffstat (limited to 'build2/utility.cxx')
-rw-r--r-- | build2/utility.cxx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/build2/utility.cxx b/build2/utility.cxx index c3dd99f..1b8be65 100644 --- a/build2/utility.cxx +++ b/build2/utility.cxx @@ -46,6 +46,43 @@ namespace build2 // <build2/utility> // + string& + trim (string& l) + { + /* + assert (trim (r = "") == ""); + assert (trim (r = " ") == ""); + assert (trim (r = " \t\r") == ""); + assert (trim (r = "a") == "a"); + assert (trim (r = " a") == "a"); + assert (trim (r = "a ") == "a"); + assert (trim (r = " \ta") == "a"); + assert (trim (r = "a \r") == "a"); + assert (trim (r = " a ") == "a"); + assert (trim (r = " \ta \r") == "a"); + */ + + size_t i (0), n (l.size ()); + + for (char c; + i != n && ((c = l[i]) == ' ' || c == '\t' || c == '\r'); + ++i) ; + + for (char c; + n != i && ((c = l[n - 1]) == ' ' || c == '\t' || c == '\r'); + --n) ; + + if (i != 0) + { + string s (l, i, n - i); + l.swap (s); + } + else if (n != l.size ()) + l.resize (n); + + return l; + } + const string empty_string; const path empty_path; const dir_path empty_dir_path; |