diff options
author | Barry Warsaw <barry@python.org> | 2003-05-29 19:39:33 +0000 |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2003-05-29 19:39:33 +0000 |
commit | db6888b7dfa25e2b298f6e419673f137fdcce347 (patch) | |
tree | 9996c27cf14bfc0e6f9e1956813f2bb92c61c32b /Lib/email/Generator.py | |
parent | 65f8cedd4a9820e5d069ece0194b7da0b1e4e33c (diff) | |
download | cpython-git-db6888b7dfa25e2b298f6e419673f137fdcce347.tar.gz |
_make_boundary(): Fix for SF bug #745478, broken boundary calculation
in some locales. This code simplifies the boundary algorithm to use
randint() which is what we wanted anyway.
Bump package version to 2.5.3.
Backport candidate for Python 2.2.3
Diffstat (limited to 'Lib/email/Generator.py')
-rw-r--r-- | Lib/email/Generator.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Lib/email/Generator.py b/Lib/email/Generator.py index 9cce51c40b..6f17963d0f 100644 --- a/Lib/email/Generator.py +++ b/Lib/email/Generator.py @@ -5,6 +5,7 @@ """ import re +import sys import time import locale import random @@ -356,11 +357,14 @@ class DecodedGenerator(Generator): # Helper +_width = len(repr(sys.maxint-1)) +_fmt = '%%0%dd' % _width + def _make_boundary(text=None): # Craft a random boundary. If text is given, ensure that the chosen # boundary doesn't appear in the text. - dp = locale.localeconv().get('decimal_point', '.') - boundary = ('=' * 15) + repr(random.random()).split(dp)[1] + '==' + token = random.randint(0, sys.maxint-1) + boundary = ('=' * 15) + (_fmt % token) + '==' if text is None: return boundary b = boundary |