Skip to content

Commit 7ecaa60

Browse files
author
Ralf Schlatterbeck
committed
Yet another rfc2822 encoding patch: '?' must be escaped.
Fixes [SF#1505663] "'?' in rfc2822-encoded header isn't quoted +patch"
1 parent 7b226a8 commit 7ecaa60

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

roundup/rfc2822.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def encode_header(header, charset='utf-8'):
141141
if c == ' ':
142142
quoted += '_'
143143
# These characters can be included verbatim
144-
elif hqre.match(c) and c not in '_=':
144+
elif hqre.match(c) and c not in '_=?':
145145
quoted += c
146146
# Otherwise, replace with hex value like =E2
147147
else:

test/test_rfc2822.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ def testEncode(self):
2121
result = '=?utf-8?q?Re:_[it=5Fissue3]_Ren=C3=A9s_[status=3Dfeedback]?='
2222
self.assertEqual(encode_header(src), result)
2323

24+
src = 'Was machen\xc3\xbc und Fragezeichen?'
25+
result = '=?utf-8?q?Was_machen=C3=BC_und_Fragezeichen=3F?='
26+
self.assertEqual(encode_header(src), result)
27+
2428
def test_suite():
2529
suite = unittest.TestSuite()
2630
suite.addTest(unittest.makeSuite(RFC2822TestCase))

0 commit comments

Comments
 (0)