header_encode(), encode(): Use _floordiv() from the appropriate

compatibility module.
This commit is contained in:
Barry Warsaw 2002-06-02 19:08:31 +00:00
parent 21f77ac0bc
commit d2b2e533c0
1 changed files with 9 additions and 2 deletions

View File

@ -27,6 +27,13 @@
from binascii import b2a_base64, a2b_base64 from binascii import b2a_base64, a2b_base64
from email.Utils import fix_eols from email.Utils import fix_eols
try:
from email._compat22 import _floordiv
except SyntaxError:
# Python 2.1 spells integer division differently
from email._compat21 import _floordiv
CRLF = '\r\n' CRLF = '\r\n'
NL = '\n' NL = '\n'
EMPTYSTRING = '' EMPTYSTRING = ''
@ -87,7 +94,7 @@ def header_encode(header, charset='iso-8859-1', keep_eols=0, maxlinelen=76,
# length, after the RFC chrome is added in. # length, after the RFC chrome is added in.
base64ed = [] base64ed = []
max_encoded = maxlinelen - len(charset) - MISC_LEN max_encoded = maxlinelen - len(charset) - MISC_LEN
max_unencoded = max_encoded * 3 // 4 max_unencoded = _floordiv(max_encoded * 3, 4)
# BAW: Ben's original code used a step of max_unencoded, but I think it # BAW: Ben's original code used a step of max_unencoded, but I think it
# ought to be max_encoded. Otherwise, where's max_encoded used? I'm # ought to be max_encoded. Otherwise, where's max_encoded used? I'm
@ -131,7 +138,7 @@ def encode(s, binary=1, maxlinelen=76, eol=NL):
s = fix_eols(s) s = fix_eols(s)
encvec = [] encvec = []
max_unencoded = maxlinelen * 3 // 4 max_unencoded = _floordiv(maxlinelen * 3, 4)
for i in range(0, len(s), max_unencoded): for i in range(0, len(s), max_unencoded):
# BAW: should encode() inherit b2a_base64()'s dubious behavior in # BAW: should encode() inherit b2a_base64()'s dubious behavior in
# adding a newline to the encoded string? # adding a newline to the encoded string?