test/post/test-post-multifrom test/post/test-post-envelope \
test/post/test-post-group \
test/refile/test-refile \
- test/repl/test-if-str test/scan/test-scan \
+ test/repl/test-if-str test/repl/test-trailing-newline \
+ test/repl/test-multicomp \
+ test/scan/test-scan \
test/sequences/test-flist test/sequences/test-mark \
test/whatnow/test-attach-detach test/whatnow/test-cd \
test/whatnow/test-ls test/whom/test-whom \
case FT_LS_COMP:
case FT_LS_DECODECOMP:
/*
- * Trim these components of any newlines
+ * Trim these components of any newlines.
+ *
+ * But don't trim the "body" and "text" components.
*/
- if (! (fmt->f_comp->c_flags & CF_TRIMMED) &&
- fmt->f_comp->c_text) {
- int i = strlen(fmt->f_comp->c_text);
- if (fmt->f_comp->c_text[i - 1] == '\n')
- fmt->f_comp->c_text[i - 1] = '\0';
- fmt->f_comp->c_flags |= CF_TRIMMED;
+
+ comp = fmt->f_comp;
+
+ if (! (comp->c_flags & CF_TRIMMED) && comp->c_text) {
+ i = strlen(comp->c_text);
+ if (comp->c_text[i - 1] == '\n' &&
+ strcmp(comp->c_name, "body") != 0 &&
+ strcmp(comp->c_name, "text") != 0)
+ comp->c_text[i - 1] = '\0';
+ comp->c_flags |= CF_TRIMMED;
}
break;
}
--- /dev/null
+#!/bin/sh
+#
+# See if we handle multiple components of the same name correctly.
+#
+
+set -e
+
+if test -z "${MH_OBJ_DIR}"; then
+ srcdir=`dirname "$0"`/../..
+ MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
+fi
+
+. "$MH_OBJ_DIR/test/common.sh"
+
+setup_test
+
+# create test replcomps
+form="$MH_TEST_DIR/$$.replcomps"
+cat > "$form" <<EOF
+From: Nowhere User <nowhere@example.com>
+%(lit)%(formataddr %<{reply-to}%?{from}%>)\
+%<(nonnull)%(void(width))%(putaddr To: )\n%>\
+%(lit)%(formataddr{cc})\
+%<(nonnull)%(void(width))%(putaddr cc: )\n%>\
+%<{subject}Subject: Re: %{subject}\n%>\
+--------
+EOF
+
+cat > "${MH_TEST_DIR}/Mail/inbox/11" <<EOF
+From: Test1 <test1@example.com>
+To: Nowhere User <nowhere@example.com>
+cc: Mister User One <mruserone@example.com>
+Subject: This is a subject
+cc: Mister User Two <mrusertwo@example.com>
+Subject: that got continued on another line
+Date: 28 Sep 2006 03:04:05 -0400
+
+This is a new test message
+EOF
+
+expected="$MH_TEST_DIR/$$.expected"
+actual="$MH_TEST_DIR/Mail/draft"
+
+cat > "$expected" <<EOF
+From: Nowhere User <nowhere@example.com>
+To: Test1 <test1@example.com>
+cc: Mister User One <mruserone@example.com>,
+ Mister User Two <mrusertwo@example.com>
+Subject: Re: This is a subject that got continued on another line
+--------
+Test1 writes:
+> This is a new test message
+EOF
+
+repl -editor true -cc cc -format -form $form -width 72 -nowhatnowproc 11 \
+ || exit 1
+
+check "$expected" "$actual"
+
+test ${failed:-0} -eq 0 && rm "$form"
+
+exit $failed
--- /dev/null
+#!/bin/sh
+#
+# Test to make sure repl doesn't put trailing spaces at the end of components
+# (like subject)
+#
+
+set -e
+
+if test -z "${MH_OBJ_DIR}"; then
+ srcdir=`dirname "$0"`/../..
+ MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
+fi
+
+. "$MH_OBJ_DIR/test/common.sh"
+
+setup_test
+
+# create test replcomps
+form="$MH_TEST_DIR/$$.replcomps"
+cat > "$form" <<EOF
+From: Nowhere User <nowhere@example.com>
+%(lit)%(formataddr %<{reply-to}%?{from}%>)\
+%<(nonnull)%(void(width))%(putaddr To: )\n%>\
+%<{subject}Subject: Re: %{subject}\n%>\
+--------
+EOF
+
+expected="$MH_TEST_DIR/$$.expected"
+actual="$MH_TEST_DIR/Mail/draft"
+
+cat > "$expected" <<EOF
+From: Nowhere User <nowhere@example.com>
+To: Test1 <test1@example.com>
+Subject: Re: Testing message 1
+--------
+Test1 writes:
+> This is message number 1
+EOF
+
+repl -editor true -format -form $form -nowhatnowproc 1 || exit 1
+
+check "$expected" "$actual"
+
+test ${failed:-0} -eq 0 && rm "$form"
+
+exit $failed