From cb4b8c02c68aa18170e74a96f840e3613970af22 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 20 Jun 2018 07:20:32 +0200 Subject: Extend trim() to treat newline as whitespace --- libbutl/utility.cxx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'libbutl/utility.cxx') 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) { -- cgit v1.1