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>
This commit is contained in:
Jeff King
2008-03-28 17:28:33 -04:00
committed by Junio C Hamano
parent e4d594c6bd
commit 0706bd19ef
2 changed files with 68 additions and 0 deletions

View File

@ -166,4 +166,48 @@ test_expect_success 'second message is patch' '
grep "Subject:.*Second" msgtxt2
'
test_expect_success '--compose adds MIME for utf8 body' '
clean_fake_sendmail &&
(echo "#!/bin/sh" &&
echo "echo utf8 body: àéìöú >>\$1"
) >fake-editor-utf8 &&
chmod +x fake-editor-utf8 &&
echo y | \
GIT_EDITOR=$(pwd)/fake-editor-utf8 \
GIT_SEND_EMAIL_NOTTY=1 \
git send-email \
--compose --subject foo \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--smtp-server="$(pwd)/fake.sendmail" \
$patches &&
grep "^utf8 body" msgtxt1 &&
grep "^Content-Type: text/plain; charset=utf-8" msgtxt1
'
test_expect_success '--compose respects user mime type' '
clean_fake_sendmail &&
(echo "#!/bin/sh" &&
echo "(echo MIME-Version: 1.0"
echo " echo Content-Type: text/plain\\; charset=iso-8859-1"
echo " echo Content-Transfer-Encoding: 8bit"
echo " echo Subject: foo"
echo " echo "
echo " echo utf8 body: àéìöú) >\$1"
) >fake-editor-utf8-mime &&
chmod +x fake-editor-utf8-mime &&
echo y | \
GIT_EDITOR=$(pwd)/fake-editor-utf8-mime \
GIT_SEND_EMAIL_NOTTY=1 \
git send-email \
--compose --subject foo \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--smtp-server="$(pwd)/fake.sendmail" \
$patches &&
grep "^utf8 body" msgtxt1 &&
grep "^Content-Type: text/plain; charset=iso-8859-1" msgtxt1 &&
! grep "^Content-Type: text/plain; charset=utf-8" msgtxt1
'
test_done