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
This commit is contained in:
@ -1259,6 +1259,7 @@ foreach my $t (@files) {
|
|||||||
open my $fh, "<", $t or die "can't open file $t";
|
open my $fh, "<", $t or die "can't open file $t";
|
||||||
|
|
||||||
my $author = undef;
|
my $author = undef;
|
||||||
|
my $sauthor = undef;
|
||||||
my $author_encoding;
|
my $author_encoding;
|
||||||
my $has_content_type;
|
my $has_content_type;
|
||||||
my $body_encoding;
|
my $body_encoding;
|
||||||
@ -1297,7 +1298,7 @@ foreach my $t (@files) {
|
|||||||
}
|
}
|
||||||
elsif (/^From:\s+(.*)$/i) {
|
elsif (/^From:\s+(.*)$/i) {
|
||||||
($author, $author_encoding) = unquote_rfc2047($1);
|
($author, $author_encoding) = unquote_rfc2047($1);
|
||||||
my $sauthor = sanitize_address($author);
|
$sauthor = sanitize_address($author);
|
||||||
next if $suppress_cc{'author'};
|
next if $suppress_cc{'author'};
|
||||||
next if $suppress_cc{'self'} and $sauthor eq $sender;
|
next if $suppress_cc{'self'} and $sauthor eq $sender;
|
||||||
printf("(mbox) Adding cc: %s from line '%s'\n",
|
printf("(mbox) Adding cc: %s from line '%s'\n",
|
||||||
@ -1393,7 +1394,7 @@ foreach my $t (@files) {
|
|||||||
$subject = quote_subject($subject, $auto_8bit_encoding);
|
$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";
|
$message = "From: $author\n\n$message";
|
||||||
if (defined $author_encoding) {
|
if (defined $author_encoding) {
|
||||||
if ($has_content_type) {
|
if ($has_content_type) {
|
||||||
|
@ -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
|
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' '
|
test_expect_success $PREREQ 'sendemail.composeencoding works' '
|
||||||
clean_fake_sendmail &&
|
clean_fake_sendmail &&
|
||||||
git config sendemail.composeencoding iso-8859-1 &&
|
git config sendemail.composeencoding iso-8859-1 &&
|
||||||
|
Reference in New Issue
Block a user