Merge pull request #1808 from youknowone/str-splitlines

Fix str.splitlines() for \r
This commit is contained in:
Noah authored and GitHub committed 2020-03-12 17:44:05 -05:00
commit 3498a52e18
2 files changed
+6 -4

No files matched your search

-2
View File
@@ -946,8 +946,6 @@ class BaseTest:
self.checkequal('Getint', "getInt", 'title')
self.checkraises(TypeError, 'hello', 'title', 42)
# TODO: RUSTPYTHON
@unittest.expectedFailure
def test_splitlines(self):
self.checkequal(['abc', 'def', '', 'ghi'], "abc\ndef\n\rghi", 'splitlines')
self.checkequal(['abc', 'def', '', 'ghi'], "abc\ndef\n\r\nghi", 'splitlines')
+6 -2
View File
@@ -803,11 +803,15 @@ impl PyString {
let keepends = args.keepends.unwrap_or(false);
let mut elements = vec![];
let mut curr = "".to_owned();
for ch in self.value.chars() {
if ch == '\n' {
let mut chars = self.value.chars().peekable();
while let Some(ch) = chars.next() {
if ch == '\n' || ch == '\r' {
if keepends {
curr.push(ch);
}
if ch == '\r' && chars.peek() == Some(&'\n') {
continue;
}
elements.push(vm.ctx.new_str(curr.clone()));
curr.clear();
} else {