Merged revisions 80078 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80078 | r.david.murray | 2010-04-14 14:59:18 -0400 (Wed, 14 Apr 2010) | 9 lines

  Merged revisions 80062 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80062 | r.david.murray | 2010-04-13 16:57:40 -0400 (Tue, 13 Apr 2010) | 2 lines

    Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
  ........
................
This commit is contained in:
R. David Murray 2010-04-14 19:05:38 +00:00
parent 6f353a04a3
commit 84ee3103a3
4 changed files with 13 additions and 1 deletions

View File

@ -63,7 +63,7 @@ def _parseparam(s):
while s[:1] == ';': while s[:1] == ';':
s = s[1:] s = s[1:]
end = s.find(';') end = s.find(';')
while end > 0 and s.count('"', 0, end) % 2: while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2:
end = s.find(';', end + 1) end = s.find(';', end + 1)
if end < 0: if end < 0:
end = len(s) end = len(s)

View File

@ -318,6 +318,14 @@ class TestMessageAPI(TestEmailBase):
self.assertEqual(msg.get_param('name', unquote=False), self.assertEqual(msg.get_param('name', unquote=False),
'"Jim&amp;&amp;Jill"') '"Jim&amp;&amp;Jill"')
def test_get_param_with_quotes(self):
msg = email.message_from_string(
'Content-Type: foo; bar*0="baz\\"foobar"; bar*1="\\"baz"')
self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz')
msg = email.message_from_string(
"Content-Type: foo; bar*0=\"baz\\\"foobar\"; bar*1=\"\\\"baz\"")
self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz')
def test_field_containment(self): def test_field_containment(self):
unless = self.assertTrue unless = self.assertTrue
msg = email.message_from_string('Header: exists') msg = email.message_from_string('Header: exists')

View File

@ -154,6 +154,7 @@ David Cournapeau
Steve Cousins Steve Cousins
Alex Coventry Alex Coventry
Matthew Dixon Cowles Matthew Dixon Cowles
Ryan Coyner
Christopher A. Craig Christopher A. Craig
Laura Creighton Laura Creighton
Simon Cross Simon Cross
@ -654,6 +655,7 @@ George Sakkis
Rich Salz Rich Salz
Kevin Samborn Kevin Samborn
Ilya Sandler Ilya Sandler
Mark Sapiro
Ty Sarna Ty Sarna
Ben Sayer Ben Sayer
Michael Scharf Michael Scharf

View File

@ -28,6 +28,8 @@ Core and Builtins
Library Library
------- -------
- Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
- Issue #8383: pickle and pickletools use surrogatepass error handler when - Issue #8383: pickle and pickletools use surrogatepass error handler when
encoding unicode as utf8 to support lone surrogates and stay compatible with encoding unicode as utf8 to support lone surrogates and stay compatible with
Python 2.x and 3.0 Python 2.x and 3.0