diff options
author | Jeff King <peff@peff.net> | 2008-03-28 17:28:33 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-21 13:05:09 -0700 |
commit | 0706bd19ef9b41e7519df2c73796ef93484272fd (patch) | |
tree | 2ca94cbd6c7971e36b709f0266d0e84726cb1c2e /git-send-email.perl | |
parent | e4d594c6bdcb25b996120fe21c901af7a08a7f6d (diff) | |
download | git-0706bd19ef9b41e7519df2c73796ef93484272fd.tar.gz |
send-email: specify content-type of --compose body
If the compose message contains non-ascii characters, then
we assume it is in utf-8 and include the appropriate MIME
headers. If the user has already included a MIME-Version
header, then we assume they know what they are doing and
don't add any headers.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-x | git-send-email.perl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index be4a20d7cd..71ba44d69d 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -518,8 +518,22 @@ EOT open(C,"<",$compose_filename) or die "Failed to open $compose_filename : " . $!; + my $need_8bit_cte = file_has_nonascii($compose_filename); + my $in_body = 0; while(<C>) { next if m/^GIT: /; + if (!$in_body && /^\n$/) { + $in_body = 1; + if ($need_8bit_cte) { + print C2 "MIME-Version: 1.0\n", + "Content-Type: text/plain; ", + "charset=utf-8\n", + "Content-Transfer-Encoding: 8bit\n"; + } + } + if (!$in_body && /^MIME-Version:/i) { + $need_8bit_cte = 0; + } print C2 $_; } close(C); @@ -956,3 +970,13 @@ sub validate_patch { } return undef; } + +sub file_has_nonascii { + my $fn = shift; + open(my $fh, '<', $fn) + or die "unable to open $fn: $!\n"; + while (my $line = <$fh>) { + return 1 if $line =~ /[^[:ascii:]]/; + } + return 0; +} |