Skip to content
  • Don Zickus's avatar
    builtin-mailinfo.c infrastrcture changes · 87ab7992
    Don Zickus authored
    
    
    I am working on a project that required parsing through regular
    mboxes that didn't necessarily have patches embedded in them.  I
    started by creating my own modified copy of git-am and working
    from there.  Very quickly, I noticed git-mailinfo wasn't able to
    handle a big chunk of my email.
    
    After hacking up numerous solutions and running into more
    limitations, I decided it was just easier to rewrite a big chunk
    of it.  The following patch has a bunch of fixes and features
    that I needed in order for me do what I wanted.
    
    Note: I'm didn't follow any email rfc papers but I don't think
    any of the changes I did required much knowledge (besides the
    boundary stuff).
    
    List of major changes/fixes:
    - can't create empty patch files fix
    - empty patch files don't fail, this failure will come inside git-am
    - multipart boundaries are now handled
    - only output inbody headers if a patch exists otherwise assume those
    headers are part of the reply and instead output the original headers
    - decode and filter base64 patches correctly
    - various other accidental fixes
    
    I believe I didn't break any existing functionality or
    compatibility (other than what I describe above, which is really
    only the empty patch file).
    
    I tested this through various mailing list archives and
    everything seemed to parse correctly (a couple thousand emails).
    
    [jc: squashed in another patch from Don's five patch series to
     fix the test case, as this patch exposes the bug in the test.]
    
    Signed-off-by: Don Zickus's avatarDon Zickus <dzickus@redhat.com>
    Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
    87ab7992