Merge branch 'km/send-email-compose-encoding'
"git send-email --compose" can let the user create a non-ascii cover letter message, but there was not a way to mark it with appropriate content type before sending it out. Further updates fix subject quoting. * km/send-email-compose-encoding: git-send-email: add rfc2047 quoting for "=?" git-send-email: introduce quote_subject() git-send-email: skip RFC2047 quoting for ASCII subjects git-send-email: use compose-encoding for Subject git-send-email: introduce compose-encoding
This commit is contained in:
@ -854,6 +854,75 @@ test_expect_success $PREREQ 'utf8 author is correctly passed on' '
|
||||
grep "^From: Füñný Nâmé <odd_?=mail@example.com>" msgtxt1
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'sendemail.composeencoding works' '
|
||||
clean_fake_sendmail &&
|
||||
git config sendemail.composeencoding iso-8859-1 &&
|
||||
(echo "#!$SHELL_PATH" &&
|
||||
echo "echo utf8 body: àéìöú >>\"\$1\""
|
||||
) >fake-editor-utf8 &&
|
||||
chmod +x fake-editor-utf8 &&
|
||||
GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \
|
||||
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
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ '--compose-encoding works' '
|
||||
clean_fake_sendmail &&
|
||||
(echo "#!$SHELL_PATH" &&
|
||||
echo "echo utf8 body: àéìöú >>\"\$1\""
|
||||
) >fake-editor-utf8 &&
|
||||
chmod +x fake-editor-utf8 &&
|
||||
GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \
|
||||
git send-email \
|
||||
--compose-encoding iso-8859-1 \
|
||||
--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
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ '--compose-encoding overrides sendemail.composeencoding' '
|
||||
clean_fake_sendmail &&
|
||||
git config sendemail.composeencoding iso-8859-1 &&
|
||||
(echo "#!$SHELL_PATH" &&
|
||||
echo "echo utf8 body: àéìöú >>\"\$1\""
|
||||
) >fake-editor-utf8 &&
|
||||
chmod +x fake-editor-utf8 &&
|
||||
GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \
|
||||
git send-email \
|
||||
--compose-encoding iso-8859-2 \
|
||||
--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-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 &&
|
||||
@ -1073,6 +1142,23 @@ Dieser deutsche Text enthält einen Umlaut!
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'setup expect' '
|
||||
cat >expected <<EOF
|
||||
Subject: subject goes here
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'ASCII subject is not RFC2047 quoted' '
|
||||
clean_fake_sendmail &&
|
||||
echo bogus |
|
||||
git send-email --from=author@example.com --to=nobody@example.com \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
--8bit-encoding=UTF-8 \
|
||||
email-using-8bit >stdout &&
|
||||
grep "Subject" msgtxt1 >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'setup expect' '
|
||||
cat >content-type-decl <<EOF
|
||||
MIME-Version: 1.0
|
||||
|
Reference in New Issue
Block a user