Merged revisions 87191 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r87191 | r.david.murray | 2010-12-12 15:06:19 -0500 (Sun, 12 Dec 2010) | 6 lines #243654: only create a new MIME boundary if we don't already have one. The rearranged code should do exactly what the old code did, but the new code avoids a potentially costly re computation in the case where a boundary already exists. ........
This commit is contained in:
parent
e6e5ea5f2a
commit
0101a3a827
|
@ -180,19 +180,13 @@ class Generator:
|
|||
g = self.clone(s)
|
||||
g.flatten(part, unixfrom=False)
|
||||
msgtexts.append(s.getvalue())
|
||||
# Now make sure the boundary we've selected doesn't appear in any of
|
||||
# the message texts.
|
||||
alltext = NL.join(msgtexts)
|
||||
# BAW: What about boundaries that are wrapped in double-quotes?
|
||||
boundary = msg.get_boundary(failobj=_make_boundary(alltext))
|
||||
# If we had to calculate a new boundary because the body text
|
||||
# contained that string, set the new boundary. We don't do it
|
||||
# unconditionally because, while set_boundary() preserves order, it
|
||||
# doesn't preserve newlines/continuations in headers. This is no big
|
||||
# deal in practice, but turns out to be inconvenient for the unittest
|
||||
# suite.
|
||||
if msg.get_boundary() != boundary:
|
||||
msg.set_boundary(boundary)
|
||||
boundary = msg.get_boundary()
|
||||
if not boundary:
|
||||
# Create a boundary that doesn't appear in any of the
|
||||
# message texts.
|
||||
alltext = NL.join(msgtexts)
|
||||
msg.set_boundary(self._make_boundary(alltext))
|
||||
# If there's a preamble, write it out, with a trailing CRLF
|
||||
if msg.preamble is not None:
|
||||
print(msg.preamble, file=self._fp)
|
||||
|
|
Loading…
Reference in New Issue