Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 69a06dd

Browse files
committed
#11062: Fix universal newline support in Babyl._install_message()
2 parents 0e41628 + 8861494 commit 69a06dd

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

Lib/mailbox.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,10 +1447,17 @@ def _install_message(self, message):
14471447
else:
14481448
break
14491449
while True:
1450-
buffer = message.read(4096) # Buffer size is arbitrary.
1451-
if not buffer:
1450+
line = message.readline()
1451+
if not line:
14521452
break
1453-
self._file.write(buffer.replace(b'\n', linesep))
1453+
# Universal newline support.
1454+
if line.endswith(b'\r\n'):
1455+
line = line[:-2] + linesep
1456+
elif line.endswith(b'\r'):
1457+
line = line[:-1] + linesep
1458+
elif line.endswith(b'\n'):
1459+
line = line[:-1] + linesep
1460+
self._file.write(line)
14541461
else:
14551462
raise TypeError('Invalid message type: %s' % type(message))
14561463
stop = self._file.tell()

0 commit comments

Comments
 (0)