]> granicus.if.org Git - python/commitdiff
rfc822.unquote() doesn't properly de-backslash-ify in Python prior to
authorBarry Warsaw <barry@python.org>
Wed, 11 Sep 2002 02:22:48 +0000 (02:22 +0000)
committerBarry Warsaw <barry@python.org>
Wed, 11 Sep 2002 02:22:48 +0000 (02:22 +0000)
2.3.  This patch (adapted from Quinn Dunkan's SF patch #573204) fixes
the problem and should get ported to rfc822.py.

Lib/email/Utils.py

index cc02f5e131e5614279cef15437537e0854d4f641..78365be0d42ac1fb8b8bc748ea9a53f675f406d5 100644 (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
+
+
 \f
 # RFC2231-related functions - parameter encoding and decoding
 def decode_rfc2231(s):