summaryrefslogtreecommitdiffstats
path: root/Lib/email
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-12-12 20:28:13 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-12-12 20:28:13 (GMT)
commit0101a3a827eafb5e0178f4ea402cfd8abf97ab5c (patch)
tree89f37f844c6eb2c9517cc971a9c3579218c44e79 /Lib/email
parente6e5ea5f2a57c1d23ae8b10533c81c325d532c1d (diff)
downloadcpython-0101a3a827eafb5e0178f4ea402cfd8abf97ab5c.zip
cpython-0101a3a827eafb5e0178f4ea402cfd8abf97ab5c.tar.gz
cpython-0101a3a827eafb5e0178f4ea402cfd8abf97ab5c.tar.bz2
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. ........
Diffstat (limited to 'Lib/email')
-rw-r--r--Lib/email/generator.py18
1 files changed, 6 insertions, 12 deletions
diff --git a/Lib/email/generator.py b/Lib/email/generator.py
index e05b67d..cf5e092 100644
--- a/Lib/email/generator.py
+++ b/Lib/email/generator.py
@@ -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)