diff --git a/git-send-email.perl b/git-send-email.perl index 107e814b67..adcb4e397b 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -636,15 +636,15 @@ EOT my $need_8bit_cte = file_has_nonascii($compose_filename); my $in_body = 0; my $summary_empty = 1; + if (!defined $compose_encoding) { + $compose_encoding = "UTF-8"; + } while(<$c>) { next if m/^GIT:/; if ($in_body) { $summary_empty = 0 unless (/^\n$/); } elsif (/^\n$/) { $in_body = 1; - if (!defined $compose_encoding) { - $compose_encoding = "UTF-8"; - } if ($need_8bit_cte) { print $c2 "MIME-Version: 1.0\n", "Content-Type: text/plain; ", @@ -658,7 +658,7 @@ EOT my $subject = $initial_subject; $_ = "Subject: " . ($subject =~ /[^[:ascii:]]/ ? - quote_rfc2047($subject) : + quote_rfc2047($subject, $compose_encoding) : $subject) . "\n"; } elsif (/^In-Reply-To:\s*(.+)\s*$/i) { diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 265ae0463f..89fcedaa33 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -909,6 +909,20 @@ test_expect_success $PREREQ '--compose-encoding overrides sendemail.composeencod grep "^Content-Type: text/plain; charset=iso-8859-2" msgtxt1 ' +test_expect_success $PREREQ '--compose-encoding adds correct MIME for subject' ' + clean_fake_sendmail && + GIT_EDITOR="\"$(pwd)/fake-editor\"" \ + git send-email \ + --compose-encoding iso-8859-2 \ + --compose --subject utf8-sübjëct \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && + grep "^fake edit" msgtxt1 && + grep "^Subject: =?iso-8859-2?q?utf8-s=C3=BCbj=C3=ABct?=" msgtxt1 +' + test_expect_success $PREREQ 'detects ambiguous reference/file conflict' ' echo master > master && git add master &&