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.
This commit is contained in:
parent
93ad6a7a3b
commit
184d55a897
|
@ -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):
|
||||||
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):
|
||||||
|
|
Loading…
Reference in New Issue