setup_test
+check_exit '-eq 1' dist -
+check_exit '-eq 1' dist -editor
+check_exit '-eq 1' dist -editor foo -editor
+check_exit '-eq 1' dist -nowhatnowproc -whatnowproc foo -whatnowproc
+check_exit '-eq 1' dist -file
+check_exit '-eq 1' dist -file foo -file bar
+check_exit '-eq 1' dist -form
+check_exit '-eq 1' dist -draftfolder
+check_exit '-eq 1' dist -draftfolder foo -draftfolder bar
+check_exit '-eq 1' dist -draftmessage
+check_exit '-eq 1' dist -draftmessage 42 -draftmessage 314
+check_exit '-eq 1' dist -from
+check_exit '-eq 1' dist -to
+check_exit '-eq 1' dist -cc
+check_exit '-eq 1' dist -fcc
+check_exit '-eq 1' dist -width
+check_exit '-eq 1' dist -width 42 -width 0
+check_exit '-eq 1' dist -atfile -noatfile -
+check_exit '-eq 1' dist + @
+check_exit '-eq 1' dist 42 314
+check_exit '-eq 1' dist -file foo 42
+
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
actual=$MH_TEST_DIR/$$.actual
actual_err=$MH_TEST_DIR/$$.actual_err
-localmbox=`${MH_LIB_DIR}/ap -format "%(localmbox)" 0`
+localmbox=`${MH_LIBEXEC_DIR}/ap -format "%(localmbox)" 0 | sed 's/^<\(.*\)>$/\1/'`
#### Use sendmail/pipe below to override default mts.
mts_fakesendmail="${MHMTSCONF}-fakesendmail"
# arguments: dist switches
test_dist ()
{
- printf 'send\n' | dist "$@" >/dev/null
+ printf 'send\n' | run_prog dist "$@" >/dev/null
# fakesendmail drops the message and any cc's into this mbox.
mbox="${MH_TEST_DIR}"/Mail/fakesendmail.mbox
inc -silent -file "$mbox"
- rm -f "$mbox" "$mbox.map"
+ rm -f "$mbox"
# It's hard to calculate the exact Date: header post is going to
# use, so we'll just use sed to remove the actual date so we can
-[no]atfile
EOF
-dist -help >"$actual" 2>&1
+#### Skip nmh intro text.
+dist -help | sed '/^$/,$d' >"$actual" 2>&1
check "$expected" "$actual"
# check -version
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: me@example.com
Resent-To: you@example.com
From: Test2 <test2@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 2@test.nmh
Subject: Testing message 2
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test2 <test2@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 2@test.nmh
Subject: Testing message 2
This is message number 2
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
This is message number 1
From: Test8 <test8@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 8@test.nmh
Subject: Testing message 8
Resent-From: ${localmbox}
Resent-To: somebody@example.com
# check -inplace
# Hard link the message and verify that the new one does get annotated.
- ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
+ ln "${MH_TEST_DIR}/Mail/inbox/9" "${MH_TEST_DIR}/Mail/inbox/9.link"
cat >"$expected" <<EOF
-From: Test8 <test8@example.com>
+From: Test9 <test9@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
-Subject: Testing message 8
+Message-Id: 9@test.nmh
+Subject: Testing message 9
Resent-From: ${localmbox}
Resent-To: somebody@example.com
Resent-Date:
-This is message number 8
+This is message number 9
EOF
- test_dist 8 -noedit -to somebody@example.com -annotate -noinplace -inplace
- check "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
+ test_dist 9 -noedit -to somebody@example.com -annotate -noinplace -inplace
+ check "${MH_TEST_DIR}/Mail/inbox/9" "${MH_TEST_DIR}/Mail/inbox/9.link"
fi
# check -draftfolder
From: Test3 <test3@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
Subject: Testing message 3
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test3 <test3@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
Subject: Testing message 3
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test3 <test3@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
Subject: Testing message 3
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: me@example.com
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
EOF
test_dist 1 -noedit -to somebody@example.com -fcc outbox
-run_test 'scan +outbox -width 6' ' 1 '
+run_test 'scan +outbox -width 6' ' 1 '
cat >"$expected" <<EOF
From: Test1 <test1@example.com>
To: Some User <user@example.com>
Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
Subject: Testing message 1
Resent-From: ${localmbox}
Resent-To: somebody@example.com
EOF
test_dist +inbox 1 -noedit -to somebody@example.com -fcc +outbox
-run_test 'scan +outbox -width 6 2' ' 2 '
+run_test 'scan +outbox -width 6 2' ' 2 '
+
+#
+# Check that dist encodes headers using RFC-2047 properly
+#
+
+require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
+
+cat >"$expected" <<EOF
+From: Test1 <test1@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
+Subject: Testing message 1
+Resent-From: =?UTF-8?Q?Mr_F=C3=B8o_Bar?= <resent-from@example.com>
+Resent-To: =?UTF-8?Q?Mr_Nobod=C3=BF?= <resent-to@example.com>
+Resent-Date:
+
+This is message number 1
+EOF
+test_dist +inbox 1 -noedit -from 'Mr Føo Bar <resent-from@example.com>' \
+ -to 'Mr Nobodÿ <resent-to@example.com>' -fcc +outbox
exit ${failed:-0}