From: Junio C Hamano Date: Tue, 07 Feb 2006 05:35:25 GMT Subject: Re: git-am: "Patch fragment without a header" Message-ID: <7vfymv3f4y.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <43E814C2.6090104@zytor.com> "H. Peter Anvin" writes: > Unfortunately git-mailinfo is in C, otherwise I'd have suggested using > the Perl MIME-tools, which seems to have all this stuff in it. Heh, spawn Perl for every message? I'd be ****ed by Linus if I did so ;-). This should fix it and I'd appreciate if you try it on other messages. I tried it on the message you quoted with: git-mailinfo -u /var/tmp/msg /var/tmp/patch <./+hpa.eml >/var/tmp/info The resulting 'msg' and 'info' looks reasonable utf8 and patch was not corrupt. -- >8 -- [PATCH] mailinfo: reset CTE after each multipart If the first part uses quoted-printable to protect iso8859-1 name in the commit log, and the second part was plain ascii text patchfile without even Content-Transfer-Encoding subheader, we incorrectly tried to decode the patch as quoted printable. Signed-off-by: Junio C Hamano --- diff --git a/mailinfo.c b/mailinfo.c index 0265a29..ff2d4d4 100644 --- a/mailinfo.c +++ b/mailinfo.c @@ -707,6 +707,9 @@ static void handle_multipart_body(void) if (!len) { if (handle_multipart_one_part() < 0) return; + /* Reset per part headers */ + transfer_encoding = TE_DONTCARE; + charset[0] = 0; } else check_subheader_line(line, len);