mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 01:41:59 -05:00
AK: Don’t drop lines between \r and \n in StringView::lines() (#7662)
StringView::lines() supports line-separators “\n”, “\r”, and “\r\n”. The method will drop an entire line if it is surrounded by “\r” and “\n” separators on the left and right sides respectively.
This commit is contained in:
parent
1828607606
commit
5a6f0ef1bc
2 changed files with 3 additions and 2 deletions
|
@ -99,12 +99,13 @@ Vector<StringView> StringView::lines(bool consider_cr) const
|
|||
if (last_ch_was_cr) {
|
||||
substart = i + 1;
|
||||
split_view = false;
|
||||
last_ch_was_cr = false;
|
||||
}
|
||||
}
|
||||
if (ch == '\r') {
|
||||
split_view = true;
|
||||
last_ch_was_cr = true;
|
||||
} else {
|
||||
last_ch_was_cr = false;
|
||||
}
|
||||
if (split_view) {
|
||||
size_t sublen = i - substart;
|
||||
|
|
|
@ -77,7 +77,7 @@ TEST_CASE(ends_with)
|
|||
|
||||
TEST_CASE(lines)
|
||||
{
|
||||
String test_string = "a\nb\r\nc\rd";
|
||||
String test_string = "a\rb\nc\r\nd";
|
||||
StringView test_string_view = test_string.view();
|
||||
Vector<StringView> test_string_vector = test_string_view.lines();
|
||||
EXPECT_EQ(test_string_vector.size(), 4u);
|
||||
|
|
Loading…
Reference in a new issue