diff options
author | Don Zickus <dzickus@redhat.com> | 2007-03-12 15:52:04 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-12 23:33:41 -0700 |
commit | 87ab799234639c26ea10de74782fa511cb3ca606 (patch) | |
tree | 4161e07142a9a606bcd7b21f8dec8179338dec21 /git-applymbox.sh | |
parent | 27ebd6e0443bdd795869f598ecebc9eadd64a26c (diff) | |
download | git-87ab799234639c26ea10de74782fa511cb3ca606.tar.gz git-87ab799234639c26ea10de74782fa511cb3ca606.tar.xz |
builtin-mailinfo.c infrastrcture changes
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 <dzickus@redhat.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-applymbox.sh')
-rwxr-xr-x | git-applymbox.sh | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/git-applymbox.sh b/git-applymbox.sh index 1f68599ae..2cbdc7eb3 100755 --- a/git-applymbox.sh +++ b/git-applymbox.sh @@ -77,6 +77,10 @@ do *) git-mailinfo $keep_subject $utf8 \ .dotest/msg .dotest/patch <$i >.dotest/info || exit 1 + test -s $dotest/patch || { + echo "Patch is empty. Was is split wrong?" + stop_here $this + } git-stripspace < .dotest/msg > .dotest/msg-clean ;; esac |