filename parameters in Content-Type and Content-Disposition headers,
respectively.
-
-----------------
OBSOLETE FEATURES
-----------------
scan(1), inc(1), and the other programs that rely on the format scanner.
- The first character of some very short (less than 4 characters) message
bodies is no longer dropped.
+- mhfixmsg now adds a Content-Transfer-Encoding header at the message level,
+ if needed after decoding text parts.
+- mhbuild now checks whether all text parts need a Content-Transfer-Encoding
+ header, not just those with a character set not specified.
check "${testname}.actual" "$1"
}
+
# check that 7-bit body isn't encoded
+start_test "7-bit body isn't encoded"
cat > "${MH_TEST_DIR}/attachment.txt" <<EOF
this is an attachment
EOF
test_attachment "${testname}.expected"
+
# check that 8-bit body is encoded as quoted-printable text/plain,
# even with an attachment
-
+start_test '8-bit body is encoded as quoted-printable text/plain'
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody <nobody@example.com>
To: Somebody <somebody@example.com>
test_attachment "${testname}.expected"
-# Repeat the previous test, but make sure that the locale is set to C, which
-# should cause mhbuild to fail
+# check that 8-bit attachment gets C-T-E
+start_test '8-bit attachment gets C-T-E'
+rm -f "${MH_TEST_DIR}/attachment.txt"
+cat > "${MH_TEST_DIR}/attachment.txt" <<EOF
+8-bit attachment, ¡Ay, caramba!
+EOF
+
+cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
+From: Mr Nobody <nobody@example.com>
+To: Somebody <somebody@example.com>
+Subject: Test
+Attach: $MH_TEST_DIR/attachment.txt
+EOF
+
+cat > "${testname}.expected" <<EOF
+From: Mr Nobody <nobody@example.com>
+To: Somebody <somebody@example.com>
+Subject: Test
+MIME-Version: 1.0
+Content-Type: text/plain; name="attachment.txt"
+Content-Description: attachment.txt
+Content-Disposition: attachment; filename="attachment.txt"
+Content-Transfer-Encoding: 8bit
+Date:
+
+8-bit attachment, ¡Ay, caramba!
+EOF
+
+test_attachment "${testname}.expected"
+
+
+# check 8-bit body but make sure that the locale is set to C, which
+# should cause mhbuild to fail
+start_test '8-bit body with C locale'
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody <nobody@example.com>
To: Somebody <somebody@example.com>
check "$expected" "$actual"
+
rm -f ${MHMTSCONF} "${MH_TEST_DIR}/attachment.txt"
+finish_test
exit ${failed:-0}
# emacs hackage to ensure that it writes the inverted exclamation
* Decide what to check while scanning this content. Note that
* for text content we always check for 8bit characters if the
* charset is unspecified, because that controls whether or not the
- * character set is us-ascii or retrieved from the locale.
+ * character set is us-ascii or retrieved from the locale. And
+ * we check even if the charset is specified, to allow setting
+ * the proper Content-Transfer-Encoding.
*/
if (ct->c_type == CT_TEXT) {
t = (struct text *) ct->c_ctparams;
if (t->tx_charset == CHARSET_UNSPECIFIED) {
- check8bit = 1;
checknul = 1;
}
+ check8bit = 1;
}
switch (ct->c_reqencoding) {