/* adios calls advertise() with no tail to print fmt, and perhaps what,
* to stderr, and "ends" the program with an error exit status. The
* route to exit is via the done function pointer and may not be
- * straightforward.
- * FIXME: Document if this function can ever return. If not, perhaps an
- * abort(3) at the end of the routine would make that more clear. */
+ * straightforward. */
void
adios (const char *what, const char *fmt, ...)
{
va_start(ap, fmt);
advertise (what, NULL, fmt, ap);
va_end(ap);
+ /* done(), by default, calls exit(). So this function, with that
+ default, will never return. */
done (1);
}
check "$expected" "$actual" : locale profile component
+start_test 'Encoded parameter value'
+msgfile=`mhpath new`
+msgnum=`basename $msgfile`
+cat > $msgfile <<EOF
+From: foo@example.edu
+To: bar@example.edu
+Subject: test
+MIME-Version: 1.0
+Content-Type: text/plain; charset*=EBCDIC-US''%e4%e3%c6%60%f8
+Content-Transfer-Encoding: quoted-printable
+Content-Description: bogus quoted-printable data
+Date: Sun, 18 Dec 2005 00:52:39 +0100
+
+4 =C3=B7 2 =3D 2
+EOF
+
+cat > $expected <<EOF
+[ Message inbox:12 ]
+Date: Sun, 18 Dec 2005 00:52:39 +0100
+To: bar@example.edu
+From: foo@example.edu
+Subject: test
+
+MIME-Version: 1.0
+Content-Description: bogus quoted-printable data
+
+[ part - text/plain - bogus quoted-printable data ${text_size}B ]
+4 รท 2 = 2
+EOF
+
+run_prog mhshow $msgnum > $actual 2>&1
+check "$expected" "$actual" : encoded parameter value
+
+
+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
+Content-Type: text/plain; charset*=invalid''%0Dus-ascii
+EOF
+
+cat > $expected <<EOF
+[ Message inbox:12 ]
+Subject: invalid parameter value charset
+
+MIME-Version: 1.0
+
+[ part - text/plain - 0B ]
+EOF
+
+run_prog mhshow $msgnum > $actual 2>&1
+check "$expected" "$actual"
+
+
finish_test
exit $failed
# build environment on machines they can't login on. It also provides
# a history in the build logs that might be useful in catching
# regressions.
-#
+#
# This script should *only* report basic information about the build
# environment, and only that necessary to reproduce the build
# environment.
-#
-# FIXME: Document meaning of script's exit status, if any.
-# It jumps through hoops with `|| true' despite not using `set -e'.
offset () {
sed -e '/./s/^/ /' "$@"
cc -v 2>&1 | offset
header Installed packages:
+ #### pkg(7) or pkg_info(1) might not always be available.
(pkg info 2>/dev/null | offset) || true
(pkg_info 2>/dev/null | offset) || true
;;
#endif /* HAVE_ICONV */
/*
- * Take everything non-ASCII and substituite the replacement character
+ * Take everything non-ASCII and substitute the replacement character
*/
q = buffer;
bufsize = sizeof(buffer);
for (p = pm->pm_value; *p != '\0' && bufsize > 1; p++, q++, bufsize--) {
- /* FIXME: !iscntrl should perhaps be isprint as that allows all
- * classes bar cntrl, whereas the cntrl class can include those
- * in space and blank.
- * http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html */
- if (isascii((unsigned char) *p) && !iscntrl((unsigned char) *p))
+ if (isascii((unsigned char) *p) && isprint((unsigned char) *p))
*q = *p;
else
*q = replace;