aboutsummaryrefslogtreecommitdiff
path: root/libbutl/utility.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-06-20 07:20:32 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-06-20 07:20:32 +0200
commitcb4b8c02c68aa18170e74a96f840e3613970af22 (patch)
treee968eb62113bc3dd96c297958c65a80973954aca /libbutl/utility.cxx
parent06e915be138b0638e30083f84cecda0eb1bfc895 (diff)
Extend trim() to treat newline as whitespace
Diffstat (limited to 'libbutl/utility.cxx')
-rw-r--r--libbutl/utility.cxx15
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)
{