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:

committed by
Junio C Hamano

parent
e4d594c6bd
commit
0706bd19ef
@ -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
|
||||
|
Reference in New Issue
Block a user