From 8f8087967652f2c3d1caae80714a3b89e40c5268 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 2 Dec 2019 20:41:15 +0100 Subject: [PATCH] AK: StringView::lines() should keep empty lines --- AK/StringView.cpp | 3 +-- AK/Tests/TestStringView.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/AK/StringView.cpp b/AK/StringView.cpp index 2b79c61c28..8e9a2aa41e 100644 --- a/AK/StringView.cpp +++ b/AK/StringView.cpp @@ -68,8 +68,7 @@ Vector StringView::lines(bool consider_cr) const } if (split_view) { ssize_t sublen = i - substart; - if (sublen != 0) - v.append(substring_view(substart, sublen)); + v.append(substring_view(substart, sublen)); substart = i + 1; } split_view = false; diff --git a/AK/Tests/TestStringView.cpp b/AK/Tests/TestStringView.cpp index d98c74138d..efe2596151 100644 --- a/AK/Tests/TestStringView.cpp +++ b/AK/Tests/TestStringView.cpp @@ -61,6 +61,14 @@ TEST_CASE(lines) EXPECT(test_string_vector.at(1) == String("Hello there")); EXPECT(test_string_vector.at(2) == String("Hello there")); EXPECT(test_string_vector.at(3) == String("```")); + + test_string = "\n\n\n"; + test_string_view = test_string.view(); + test_string_vector = test_string_view.lines(); + EXPECT_EQ(test_string_vector.size(), 3); + EXPECT_EQ(test_string_vector.at(0).is_empty(), true); + EXPECT_EQ(test_string_vector.at(1).is_empty(), true); + EXPECT_EQ(test_string_vector.at(2).is_empty(), true); } TEST_MAIN(StringView)