aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürgen Rühle <j-r@online.de>2007-01-10 13:36:39 -0800
committerJunio C Hamano <junkio@cox.net>2007-01-10 13:39:16 -0800
commit374c59056a0719fe1244280cdb6fdce48672f441 (patch)
tree931fabdb7941e448f6bdf9396af8a13d77c67bf8
parentc2cb959fe7c7e5736cead7edf2b69be7e072a543 (diff)
downloadgit-374c59056a0719fe1244280cdb6fdce48672f441.tar.gz
git-374c59056a0719fe1244280cdb6fdce48672f441.tar.xz
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>
-rwxr-xr-xgit-send-email.perl10
1 files changed, 10 insertions, 0 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index ba39d3938..8dc2ee0cf 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -402,6 +402,15 @@ sub make_message_id
$cc = "";
$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
{
my @recipients = unique_email_list(@to);
@@ -555,6 +564,7 @@ foreach my $t (@files) {
}
close F;
if (defined $author_not_sender) {
+ $author_not_sender = unquote_rfc2047($author_not_sender);
$message = "From: $author_not_sender\n\n$message";
}