From 15e9dc9eac219775aa70e57652810a187584d7c6 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Sun, 27 Jan 2002 06:48:02 +0000 Subject: [PATCH] _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. --- Lib/email/Parser.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 -- 2.40.0