Kaydet (Commit) 184d55a8 authored tarafından Barry Warsaw's avatar Barry Warsaw

rfc822.unquote() doesn't properly de-backslash-ify in Python prior to

2.3.  This patch (adapted from Quinn Dunkan's SF patch #573204) fixes
the problem and should get ported to rfc822.py.
üst 93ad6a7a
...@@ -13,7 +13,7 @@ import warnings ...@@ -13,7 +13,7 @@ import warnings
from cStringIO import StringIO from cStringIO import StringIO
from types import ListType from types import ListType
from rfc822 import unquote, quote from rfc822 import quote
from rfc822 import AddressList as _AddressList from rfc822 import AddressList as _AddressList
from rfc822 import mktime_tz from rfc822 import mktime_tz
...@@ -260,6 +260,17 @@ def parseaddr(addr): ...@@ -260,6 +260,17 @@ def parseaddr(addr):
return addrs[0] return addrs[0]
# rfc822.unquote() doesn't properly de-backslash-ify in Python pre-2.3.
def unquote(str):
"""Remove quotes from a string."""
if len(str) > 1:
if str.startswith('"') and str.endswith('"'):
return str[1:-1].replace('\\\\', '\\').replace('\\"', '"')
if str.startswith('<') and str.endswith('>'):
return str[1:-1]
return str
# RFC2231-related functions - parameter encoding and decoding # RFC2231-related functions - parameter encoding and decoding
def decode_rfc2231(s): def decode_rfc2231(s):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment