diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-06-27 14:29:57 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-06-27 14:29:57 -0700 |
commit | b29dc5c671150ff0c4afa41cdd8fec9c86ffe6eb (patch) | |
tree | 7a63fd518c80fbc2114a405d61293fff7eb4d9ad | |
parent | 833cd7fc9fed8568a3612e9b1b204290b0f0e15d (diff) | |
parent | 4cb46bddeb7d21241f8ac5e46eb3d1cee468ea14 (diff) | |
download | git-b29dc5c671150ff0c4afa41cdd8fec9c86ffe6eb.tar.gz git-b29dc5c671150ff0c4afa41cdd8fec9c86ffe6eb.tar.xz |
Merge branch 'mt/send-email-cc-match-fix'
Logic used by git-send-email to suppress cc mishandled names that
need RFC2047 quoting.
* mt/send-email-cc-match-fix:
send-email: sanitize author when writing From line
send-email: add test for duplicate utf8 name
-rwxr-xr-x | git-send-email.perl | 5 | ||||
-rwxr-xr-x | t/t9001-send-email.sh | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index 671762b93..ecbf56f69 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1259,6 +1259,7 @@ foreach my $t (@files) { open my $fh, "<", $t or die "can't open file $t"; my $author = undef; + my $sauthor = undef; my $author_encoding; my $has_content_type; my $body_encoding; @@ -1297,7 +1298,7 @@ foreach my $t (@files) { } elsif (/^From:\s+(.*)$/i) { ($author, $author_encoding) = unquote_rfc2047($1); - my $sauthor = sanitize_address($author); + $sauthor = sanitize_address($author); next if $suppress_cc{'author'}; next if $suppress_cc{'self'} and $sauthor eq $sender; printf("(mbox) Adding cc: %s from line '%s'\n", @@ -1393,7 +1394,7 @@ foreach my $t (@files) { $subject = quote_subject($subject, $auto_8bit_encoding); } - if (defined $author and $author ne $sender) { + if (defined $sauthor and $sauthor ne $sender) { $message = "From: $author\n\n$message"; if (defined $author_encoding) { if ($has_content_type) { diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 9f46f22ca..2813aa9a6 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -956,6 +956,20 @@ test_expect_success $PREREQ 'utf8 author is correctly passed on' ' grep "^From: Füñný Nâmé <odd_?=mail@example.com>" msgtxt1 ' +test_expect_success $PREREQ 'utf8 sender is not duplicated' ' + clean_fake_sendmail && + test_commit weird_sender && + test_when_finished "git reset --hard HEAD^" && + git commit --amend --author "Füñný Nâmé <odd_?=mail@example.com>" && + git format-patch --stdout -1 >funny_name.patch && + git send-email --from="Füñný Nâmé <odd_?=mail@example.com>" \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + funny_name.patch && + grep "^From: " msgtxt1 >msgfrom && + test_line_count = 1 msgfrom +' + test_expect_success $PREREQ 'sendemail.composeencoding works' ' clean_fake_sendmail && git config sendemail.composeencoding iso-8859-1 && |