diff options
Diffstat (limited to 'Lib/email')
| -rw-r--r-- | Lib/email/Utils.py | 21 | 
1 files changed, 15 insertions, 6 deletions
diff --git a/Lib/email/Utils.py b/Lib/email/Utils.py index 4857608..b619c6b 100644 --- a/Lib/email/Utils.py +++ b/Lib/email/Utils.py @@ -221,12 +221,12 @@ def formatdate(timeval=None, localtime=False):  def make_msgid(idstring=None): -    """Returns a string suitable for RFC 2822 compliant Message-ID:, e.g: +    """Returns a string suitable for RFC 2822 compliant Message-ID, e.g:      <20020201195627.33539.96671@nightshade.la.mastaler.com>      Optional idstring if given is a string used to strengthen the -    uniqueness of the Message-ID, otherwise an empty string is used. +    uniqueness of the message id.      """      timeval = time.time()      utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) @@ -286,19 +286,28 @@ def decode_rfc2231(s):  def encode_rfc2231(s, charset=None, language=None): -    """Encode string according to RFC 2231""" +    """Encode string according to RFC 2231. + +    If neither charset nor language is given, then s is returned as-is.  If +    charset is given but not language, the string is encoded using the empty +    string for language. +    """      import urllib      s = urllib.quote(s, safe='')      if charset is None and language is None:          return s -    else: -        return "%s'%s'%s" % (charset, language, s) +    if language is None: +        language = '' +    return "%s'%s'%s" % (charset, language, s)  rfc2231_continuation = re.compile(r'^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$')  def decode_params(params): -    """Decode parameters list according to RFC 2231""" +    """Decode parameters list according to RFC 2231. + +    params is a sequence of 2-tuples containing (content type, string value). +    """      new_params = []      # maps parameter's name to a list of continuations      rfc2231_params = {}  | 
