Skip to content

Commit

Permalink
git-send-email: delay creation of MIME headers
Browse files Browse the repository at this point in the history
After the next patch, git-send-email will sometimes modify
existing Content-Transfer-Encoding headers.  Delay the addition
of the header to @xh until just before sending.  Do the same
for MIME-Version, to avoid adding it twice.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
bonzini authored and gitster committed Nov 25, 2014
1 parent 652e759 commit bb29456
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions git-send-email.perl
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,8 @@ sub send_message {
my $author_encoding;
my $has_content_type;
my $body_encoding;
my $xfer_encoding;
my $has_mime_version;
@to = ();
@cc = ();
@xh = ();
Expand Down Expand Up @@ -1394,9 +1396,16 @@ sub send_message {
}
push @xh, $_;
}
elsif (/^MIME-Version/i) {
$has_mime_version = 1;
push @xh, $_;
}
elsif (/^Message-Id: (.*)/i) {
$message_id = $1;
}
elsif (/^Content-Transfer-Encoding: (.*)/i) {
$xfer_encoding = $1 if not defined $xfer_encoding;
}
elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
push @xh, $_;
}
Expand Down Expand Up @@ -1444,10 +1453,9 @@ sub send_message {
if defined $cc_cmd && !$suppress_cc{'cccmd'};

if ($broken_encoding{$t} && !$has_content_type) {
$xfer_encoding = '8bit' if not defined $xfer_encoding;
$has_content_type = 1;
push @xh, "MIME-Version: 1.0",
"Content-Type: text/plain; charset=$auto_8bit_encoding",
"Content-Transfer-Encoding: 8bit";
push @xh, "Content-Type: text/plain; charset=$auto_8bit_encoding";
$body_encoding = $auto_8bit_encoding;
}

Expand All @@ -1467,14 +1475,19 @@ sub send_message {
}
}
else {
$xfer_encoding = '8bit' if not defined $xfer_encoding;
$has_content_type = 1;
push @xh,
'MIME-Version: 1.0',
"Content-Type: text/plain; charset=$author_encoding",
'Content-Transfer-Encoding: 8bit';
"Content-Type: text/plain; charset=$author_encoding";
}
}
}
if (defined $xfer_encoding) {
push @xh, "Content-Transfer-Encoding: $xfer_encoding";
}
if (defined $xfer_encoding or $has_content_type) {
unshift @xh, 'MIME-Version: 1.0' unless $has_mime_version;
}

$needs_confirm = (
$confirm eq "always" or
Expand Down

0 comments on commit bb29456

Please sign in to comment.