diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2018-06-20 07:20:32 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2018-06-20 07:20:32 +0200 |
commit | cb4b8c02c68aa18170e74a96f840e3613970af22 (patch) | |
tree | e968eb62113bc3dd96c297958c65a80973954aca /libbutl/utility.cxx | |
parent | 06e915be138b0638e30083f84cecda0eb1bfc895 (diff) |
Extend trim() to treat newline as whitespace
Diffstat (limited to 'libbutl/utility.cxx')
-rw-r--r-- | libbutl/utility.cxx | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libbutl/utility.cxx b/libbutl/utility.cxx index 502586c..1212aa1 100644 --- a/libbutl/utility.cxx +++ b/libbutl/utility.cxx @@ -104,17 +104,18 @@ namespace butl assert (trim (r = "a \r") == "a"); assert (trim (r = " a ") == "a"); assert (trim (r = " \ta \r") == "a"); + assert (trim (r = "\na\n") == "a"); */ - size_t i (0), n (l.size ()); + auto ws = [] (char c ) + { + return c == ' ' || c == '\t' || c == '\n' || c == '\r'; + }; - for (char c; - i != n && ((c = l[i]) == ' ' || c == '\t' || c == '\r'); - ++i) ; + size_t i (0), n (l.size ()); - for (char c; - n != i && ((c = l[n - 1]) == ' ' || c == '\t' || c == '\r'); - --n) ; + for (; i != n && ws (l[i]); ++i) ; + for (; n != i && ws (l[n - 1]); --n) ; if (i != 0) { |