X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/eda64599934da9e42be4a38cc4dc5c35d4d5d8d9..1dcc90e73715f6fd65f22ff7a1dad9c646c7d60d:/test/scan/test-scan-multibyte?ds=inline diff --git a/test/scan/test-scan-multibyte b/test/scan/test-scan-multibyte index f093a824..dc2a284c 100755 --- a/test/scan/test-scan-multibyte +++ b/test/scan/test-scan-multibyte @@ -26,7 +26,7 @@ if test "${MULTIBYTE_ENABLED}" -ne 1; then test_skip "configure did not detect multibyte support" fi -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # # Create a test message with RFC 2047 headers we can scan @@ -63,13 +63,15 @@ fi expected="$MH_TEST_DIR/$$.expected" actual="$MH_TEST_DIR/$$.actual" + +start_test 'RFC 2047 headers' if test "$width" -eq 3; then cat > "$expected" < "$expected" < $actual || exit 1 check "$expected" "$actual" + # # Check decoding with an invalid multibyte sequence. We skip this test # if we don't have iconv support, since it requires converting from one @@ -86,6 +89,7 @@ check "$expected" "$actual" # it's required for the test right after it. # +start_test 'invalid multibyte sequence' cat >`mhpath new` < To: Some User @@ -94,8 +98,8 @@ Message-Id: 12@test.nmh Subject: =?UTF-8?B?MjAxMyBOZXcgWWVhcuKAmXMgRGVhbHMhIFN0YXJ0IHRoZSB5ZWFy?= =?UTF-8?B?IHJpZ2h0IHdpdGggYmlnIHNhdmluZ3M=?= -This message has an encoded Subject with an invalid character for the -ISO-8859-1 character set, but it (U+2019) is valid UTF-8. +This message has an encoded Subject with an invalid character for +single-byte character sets, but it (U+2019) is valid UTF-8. EOF if test "$ICONV_ENABLED" -eq 1; then @@ -103,8 +107,8 @@ if test "$ICONV_ENABLED" -eq 1; then 12 12/31 Test12 2013 New Year?s Deals! Start the year right EOF - # Don't use run_prog here because it loses those environment settings. - LC_CTYPE=ISO-8859-1 MM_CHARSET=ISO-8859-1 scan -width 75 last >"$actual" + # Don't use run_prog here because it loses the environment setting. + LC_ALL=C scan -width 74 last >"$actual" check "$expected" "$actual" fi @@ -120,6 +124,7 @@ if test $? -ne 0; then fi # check scan width with a valid multibyte sequence +start_test 'scan width with a valid multibyte sequence' if test "$width" -eq 1; then cat >"$expected" <"$actual" +run_prog scan -width 74 last >"$actual" check "$expected" "$actual" -#### Skip this test if we don't have iconv support because it -#### requires converting from ISO-8859-1 to UTF-8. if test "$ICONV_ENABLED" -eq 1; then - cat >"$expected" <"$expected" <"${MH_TEST_DIR}/Mail/inbox/13" <"${MH_TEST_DIR}/Mail/inbox/13" < Subject: =?iso-8859-1?B?kgo=?= Date: Mon, 13 Jan 2014 14:18:33 -0600 @@ -156,9 +160,28 @@ properly count it when decoding, which could be seen with: The scan listing was two characters too long. EOF - run_prog scan -width 80 last >"$actual" - check "$expected" "$actual" + run_prog scan -width 80 last >"$actual" + check "$expected" "$actual" fi +start_test 'insufficient room for multicolumn character' +#### This multibyte character requires 2 columns for display, but +#### only 1 is availble. cpstripped() used to get this wrong. + +cat >"$expected" <`mhpath new` <"$actual" +check "$expected" "$actual" + + +finish_test exit $failed