summaryrefslogtreecommitdiffstats
path: root/Lib/email/feedparser.py
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-07-17 01:19:57 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-07-17 01:19:57 (GMT)
commit45bf773f605bdee3b4f8334a97d6130a75b9286a (patch)
tree66d5b495715cdd792ec445b32edbc5ebda0ca3b0 /Lib/email/feedparser.py
parentcbe1a4e28fb8dcd9fa1a17a1160ccc1c2ff9ff99 (diff)
downloadcpython-45bf773f605bdee3b4f8334a97d6130a75b9286a.zip
cpython-45bf773f605bdee3b4f8334a97d6130a75b9286a.tar.gz
cpython-45bf773f605bdee3b4f8334a97d6130a75b9286a.tar.bz2
#1555570: correctly handle a \r\n that is split by the read buffer.
Patch and test by Tony Nelson.
Diffstat (limited to 'Lib/email/feedparser.py')
-rw-r--r--Lib/email/feedparser.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/email/feedparser.py b/Lib/email/feedparser.py
index a6853c2..8db70b3 100644
--- a/Lib/email/feedparser.py
+++ b/Lib/email/feedparser.py
@@ -104,6 +104,10 @@ class BufferedSubFile(object):
# data after the final RE. In the case of a NL/CR terminated string,
# this is the empty string.
self._partial = parts.pop()
+ #GAN 29Mar09 bugs 1555570, 1721862 Confusion at 8K boundary ending with \r:
+ # is there a \n to follow later?
+ if not self._partial and parts and parts[-1].endswith('\r'):
+ self._partial = parts.pop(-2)+parts.pop()
# parts is a list of strings, alternating between the line contents
# and the eol character(s). Gather up a list of lines after
# re-attaching the newlines.