send-email: work around double encoding of in-body From field.
git-send-email sends out the message taken from format-patch output without quoting nor encoding. When copying the From: line to form in-body From: field, it should not copy it verbatim, because the From: for the header is quoted according to RFC 2047 when not ASCII. The original came from Jürgen Rühle, but I moved the string munging into a separate function so that later other people can tweak it more easily. Bugs introduced during the translation are mine. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
c2cb959fe7
commit
374c59056a
@ -402,6 +402,15 @@ sub make_message_id
|
|||||||
$cc = "";
|
$cc = "";
|
||||||
$time = time - scalar $#files;
|
$time = time - scalar $#files;
|
||||||
|
|
||||||
|
sub unquote_rfc2047 {
|
||||||
|
local ($_) = @_;
|
||||||
|
if (s/=\?utf-8\?q\?(.*)\?=/$1/g) {
|
||||||
|
s/_/ /g;
|
||||||
|
s/=([0-9A-F]{2})/chr(hex($1))/eg;
|
||||||
|
}
|
||||||
|
return "$_ - unquoted";
|
||||||
|
}
|
||||||
|
|
||||||
sub send_message
|
sub send_message
|
||||||
{
|
{
|
||||||
my @recipients = unique_email_list(@to);
|
my @recipients = unique_email_list(@to);
|
||||||
@ -555,6 +564,7 @@ foreach my $t (@files) {
|
|||||||
}
|
}
|
||||||
close F;
|
close F;
|
||||||
if (defined $author_not_sender) {
|
if (defined $author_not_sender) {
|
||||||
|
$author_not_sender = unquote_rfc2047($author_not_sender);
|
||||||
$message = "From: $author_not_sender\n\n$message";
|
$message = "From: $author_not_sender\n\n$message";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user