aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Mazur <krzysiek@podlesie.net>2012-10-22 14:41:48 +0200
committerJeff King <peff@peff.net>2012-10-25 06:00:07 -0400
commit4a47a4ddec0d4d37e81ad63385ca287abfe90f9b (patch)
tree1c86707e877c0a1f371df35546d2c8fb991f1cdd
parent62e0069056ed11294c29bae25df69b6518f6339e (diff)
downloadgit-4a47a4ddec0d4d37e81ad63385ca287abfe90f9b.tar.gz
git-4a47a4ddec0d4d37e81ad63385ca287abfe90f9b.tar.xz
git-send-email: use compose-encoding for Subject
The commit "git-send-email: introduce compose-encoding" introduced the compose-encoding option to specify the introduction email encoding (--compose option), but the email Subject encoding was still hardcoded to UTF-8. Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net> Signed-off-by: Jeff King <peff@peff.net>
-rwxr-xr-xgit-send-email.perl8
-rwxr-xr-xt/t9001-send-email.sh14
2 files changed, 18 insertions, 4 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index 107e814b6..adcb4e397 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 265ae0463..89fcedaa3 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 <nobody@example.com>" \
+ --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 &&