_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
This commit is contained in:
Barry Warsaw 2003-05-29 19:39:33 +00:00
parent 65f8cedd4a
commit db6888b7df
2 changed files with 7 additions and 3 deletions

View File

@ -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

View File

@ -4,7 +4,7 @@
"""A package for parsing, handling, and generating email messages.
"""
__version__ = '2.5.2'
__version__ = '2.5.3'
__all__ = [
'base64MIME',