else
text_size=11
#### The GNU iconv library normalises charset names by eliding '?', along
- #### with some other characters. The iconv library used on FreeBSD/NetBSD
- #### doesn't.
+ #### with some other characters. The iconv libraries used on FreeBSD/NetBSD
+ #### and Mac OS X don't.
printf x | iconv -f '?UTF-8' -t UTF-8 >/dev/null 2>&1 &&
iconv_elides_question_marks=1
fi
check "$expected" "$actual" : locale profile component
+#### All of the remaining tests rely on iconv.a
+if test "$ICONV_ENABLED" -eq 0; then
+ finish_test
+ exit $failed
+fi
+
+
#### RFC 2231 defines the extended value syntax:
#### extended-initial-value := [charset] "'" [language] "'"
#### extended-other-values
4 รท 2 = 2
EOF
-if test "$ICONV_ENABLED" -eq 1; then
- run_prog mhshow $msgnum > $actual 2>&1
- check "$expected" "$actual" : encoded parameter value
-fi
+run_prog mhshow $msgnum > $actual 2>&1
+check "$expected" "$actual" : encoded parameter value
+#### mhshow replaces the invalid character in the charset parameter value with
+#### a '?'. So, a charset name of "?us-ascii" is fed to iconv. If
+#### $iconv_elides_question_marks, iconv will normalize that to "us-ascii".
+#### Otherwise, we expect iconv to fail.
start_test 'replacement character in parameter value'
-#### The output of this test doesn't show it, but it covers the
-#### noiconv: portion of get_param_value().
cat > $msgfile <<'EOF'
Subject: invalid parameter value charset
MIME-Version: 1.0
if [ $iconv_elides_question_marks -eq 1 ]; then
check "$expected" "$actual"
else
- grep "Can't convert .*us-ascii to UTF-8" "$actual" >/dev/null || failed=1
+ if grep "Can't convert .*us-ascii to UTF-8" "$actual" >/dev/null; then
+ rm -f "$expected" "$actual"
+ else
+ failed=1
+ fi
fi