Fix dkim.fold()

This commit is contained in:
Stuart D. Gathman
2011-06-17 12:57:50 -04:00
parent 21c9810c3f
commit 1fa37e02a8
3 changed files with 21 additions and 3 deletions
+10 -3
View File
@@ -193,7 +193,14 @@ def rfc822_parse(message):
def fold(header):
"""Fold a header line into multiple crlf-separated lines at column 72."""
"""Fold a header line into multiple crlf-separated lines at column 72.
>>> fold(b'foo')
'foo'
>>> fold(b'foo'*25).splitlines()[-1]
' foo'
>>> len(fold(b'foo'*25).splitlines()[0])
72
"""
i = header.rfind(b"\r\n ")
if i == -1:
pre = b""
@@ -204,10 +211,10 @@ def fold(header):
while len(header) > 72:
i = header[:72].rfind(b" ")
if i == -1:
j = i
j = 72
else:
j = i + 1
pre += header[:i] + b"\r\n "
pre += header[:j] + b"\r\n "
header = header[j:]
return pre + header