Thread (1 message) 1 message, 1 author, 2016-06-15

Re: git-am: "Patch fragment without a header"

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:18
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

"H. Peter Anvin" [off-list ref] 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 <redacted>
---
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);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help