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:
Barry Warsaw 2002-09-11 02:22:48 +00:00
parent 93ad6a7a3b
commit 184d55a897
1 changed files with 12 additions and 1 deletions

View File

@ -13,7 +13,7 @@ import warnings
from cStringIO import StringIO
from types import ListType
from rfc822 import unquote, quote
from rfc822 import quote
from rfc822 import AddressList as _AddressList
from rfc822 import mktime_tz
@ -260,6 +260,17 @@ def parseaddr(addr):
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
def decode_rfc2231(s):