• Barry Warsaw's avatar
    Merge of the folding-reimpl-branch. Specific changes, · 08d3fdcf
    Barry Warsaw authored
    _split(): New implementation of ASCII line splitting which should do a
    better job and not be subject to the various weird artifacts (bugs)
    reported.  This should also do a better job of higher-level syntactic
    splits by trying first to split on semis, then commas, then
    whitespace.
    
    Use a Timbot-ly binary search for optimal non-ASCII split points for
    better packing of header lines.  This also lets us remove one
    recursion call.  Don't pass in firstline, but instead pass in the
    actual line length we're shooting for.  Also pass in the list of split
    characters.
    
    encode(): Pass in the list of split characters so applications can
    have some control over what "higher level syntactic breaks" are.
    
    Also,
    
    decode_header(): Transform binascii.Errors which can occur when
    decoding a base64 RFC 2047 header with bogus data, into an
    email.Errors.HeaderParseError.  Closes SF bug #696712.
    08d3fdcf
Header.py 20 KB