[Python-checkins] r87191 - python/branches/py3k/Lib/email/generator.py
r.david.murray
python-checkins at python.org
Sun Dec 12 21:06:19 CET 2010
Author: r.david.murray
Date: Sun Dec 12 21:06:19 2010
New Revision: 87191
Log:
#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.
Modified:
python/branches/py3k/Lib/email/generator.py
Modified: python/branches/py3k/Lib/email/generator.py
==============================================================================
--- python/branches/py3k/Lib/email/generator.py (original)
+++ python/branches/py3k/Lib/email/generator.py Sun Dec 12 21:06:19 2010
@@ -220,19 +220,13 @@
g = self.clone(s)
g.flatten(part, unixfrom=False, linesep=self._NL)
msgtexts.append(s.getvalue())
- # Now make sure the boundary we've selected doesn't appear in any of
- # the message texts.
- alltext = self._encoded_NL.join(msgtexts)
# BAW: What about boundaries that are wrapped in double-quotes?
- boundary = msg.get_boundary(failobj=self._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 = self._encoded_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:
self.write(msg.preamble + self._NL)
More information about the Python-checkins
mailing list