bpo-40597: email: Use CTE if lines are longer than max_line_length co… · python/cpython@6f2f475

@@ -146,13 +146,13 @@ def embedded_body(lines): return linesep.join(lines) + linesep

146146

def normal_body(lines): return b'\n'.join(lines) + b'\n'

147147

if cte==None:

148148

# Use heuristics to decide on the "best" encoding.

149-

try:

150-

return '7bit', normal_body(lines).decode('ascii')

151-

except UnicodeDecodeError:

152-

pass

153-

if (policy.cte_type == '8bit' and

154-

max(len(x) for x in lines) <= policy.max_line_length):

155-

return '8bit', normal_body(lines).decode('ascii', 'surrogateescape')

149+

if max(len(x) for x in lines) <= policy.max_line_length:

150+

try:

151+

return '7bit', normal_body(lines).decode('ascii')

152+

except UnicodeDecodeError:

153+

pass

154+

if policy.cte_type == '8bit':

155+

return '8bit', normal_body(lines).decode('ascii', 'surrogateescape')

156156

sniff = embedded_body(lines[:10])

157157

sniff_qp = quoprimime.body_encode(sniff.decode('latin-1'),

158158

policy.max_line_length)