From: Barry Warsaw Date: Sun, 27 Jan 2002 06:48:02 +0000 (+0000) Subject: _parsebody(): When adding subparts to a multipart container, make sure X-Git-Tag: v2.3c1~6776 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15e9dc9eac219775aa70e57652810a187584d7c6;p=python _parsebody(): When adding subparts to a multipart container, make sure that the first subpart added makes the payload a list object. Otherwise, a multipart/* with only one subpart will not have the proper structure. --- diff --git a/Lib/email/Parser.py b/Lib/email/Parser.py index 44a0ca2bdd..2f131d6b3a 100644 --- a/Lib/email/Parser.py +++ b/Lib/email/Parser.py @@ -1,10 +1,11 @@ -# Copyright (C) 2001 Python Software Foundation +# Copyright (C) 2001,2002 Python Software Foundation # Author: barry@zope.com (Barry Warsaw) """A parser of RFC 2822 and MIME email messages. """ from cStringIO import StringIO +from types import ListType # Intrapackage imports import Errors @@ -133,7 +134,11 @@ class Parser: msgobj = self.parsestr(part) container.preamble = preamble container.epilogue = epilogue - container.add_payload(msgobj) + # Ensure that the container's payload is a list + if not isinstance(container.get_payload(), ListType): + container.set_payload([msgobj]) + else: + container.add_payload(msgobj) elif container.get_type() == 'message/delivery-status': # This special kind of type contains blocks of headers separated # by a blank line. We'll represent each header block as a