From d69599edcb7a6248dfa00727cf349af59b34bdb4 Mon Sep 17 00:00:00 2001 From: David Levine Date: Sun, 17 Jun 2012 15:25:28 -0500 Subject: [PATCH] Replaced mhmail -debug switch with -nosend, and added -send. --- docs/pending-release-notes | 3 ++- man/mhmail.man | 21 +++++++++++++------ test/post/test-mhmail | 31 ++++++++++++++++++++++------ uip/mhmail | 49 ++++++++++++++++++++++---------------------- 4 files changed, 66 insertions(+), 38 deletions(-) diff --git a/docs/pending-release-notes b/docs/pending-release-notes index f12b408..f153a77 100644 --- a/docs/pending-release-notes +++ b/docs/pending-release-notes @@ -8,7 +8,8 @@ NEW FEATURES same component. In previous versions, all but the first were silently ignored. - mhmail now supports all post(8) options, and optionally can use - send(1) with all of its options. + send(1) with all of its options. Its formerly undocumented -resent + switch has been documented. And it has new -send/-nosend switches. ---------------------------- OBSOLETE/DEPRECATED FEATURES diff --git a/man/mhmail.man b/man/mhmail.man index cf8e73a..6bbd8ae 100644 --- a/man/mhmail.man +++ b/man/mhmail.man @@ -27,9 +27,9 @@ mhmail \- send or read mail [switches\ for .I send \&...]] +.RB [ \-send " | " \-nosend ] .RB [ \-version ] .RB [ \-help ] -.RB [ \-debug ] .ad .SH DESCRIPTION .B mhmail @@ -127,10 +127,14 @@ instead of to send the message. This allows use of the user's context and aliases. .PP The -.B \-debug -option shows the draft file that would be posted/sent and the command -that would be used to post/send the draft, but does not post or send -it. +.B \-nosend +option shows the draft file that would be posted/sent on the command's +standard output but does not post or send it. +.B \-send +provides the default behavior of posting or sending the message. It +can be used to disable +.BR \-nosend , +for example, when using a shell alias. .PP All other switches are passed on to .B post @@ -155,7 +159,7 @@ is used. dist(1), inc(1), post(8), send(1) .SH DEFAULTS -None +.RB ` \-send ' .SH CONTEXT If @@ -167,3 +171,8 @@ context changes occur. With the switch, the context of .B send is used. + +.SH BUGS +.B \-resent +cannot be used with +.BR \-profile . diff --git a/test/post/test-mhmail b/test/post/test-mhmail index 17c9505..ce4d9c6 100755 --- a/test/post/test-mhmail +++ b/test/post/test-mhmail @@ -77,12 +77,13 @@ Usage: mhmail [addrs ... [switches]] -b(ody) text -c(c) addrs ... -f(rom) addr - -s(ubject) text + -su(bject) text -r(esent) -pr(ofile) + -se(nd) + -nose(nd) -v(ersion) -h(elp) - -d(ebug) and all post(8)/send(1) switches EOF @@ -111,20 +112,18 @@ case `mhmail` in esac -# check -debug +# check -nosend # Not supported by compiled mhmail. -mhmail -debug recipient@example.com -from sender@localhost \ +mhmail -nosend recipient@example.com -from sender@localhost \ -server 127.0.0.1 -port $localport -body '' >"$actual" 2>"$actual_err" tmpfil=`head -1 $actual | sed -e 's/://'` cat > "$expected" < "$expected_err" < "$expected" < +RCPT TO: +DATA +To: recipient@example.com +From: sender@localhost +Date: + +message +. +QUIT +EOF + +test_mhmail "$expected" "-from sender@localhost -nosend -send" '|' message +[ ${failed:-0} -eq 0 ] || exit ${failed:-0} + + # check -from # Verified same behavior as compiled mhmail. cat > "$expected" <&2 exit 1 ;; -r|-re|-res|-rese|-resen|-resent) resent=1 ;; - -s|-su|-sub|-subj|-subje|-subjec|-subject) subjectarg=1 ;; + -se|-sen|-send) sendsw=1 ;; + -su|-sub|-subj|-subje|-subjec|-subject) subjectarg=1 ;; -v|-ve|-ver|-vers|-versi|-versio|-version) #### Cheat instead of using autoconf and make to fill in the version. "${nmhbindir}"/mhpath -v | sed 's/mhpath/mhmail/'; exit ;; @@ -141,7 +143,7 @@ else header="${header} " else - if [ "$use_send" -eq 0 ]; then + if [ ${use_send} -eq 0 ]; then postsendargs="${postsendargs:+${postsendargs} }-dist" else mhdist=1; export mhdist @@ -177,24 +179,21 @@ else printf "%s" "${header}${body}" > "${tmpfil}" || exit 1 fi - if [ "${debug}" ]; then - printf "%s:\n" `ls -1 "${tmpfil}"` + if [ ${sendsw} -eq 0 ]; then cat "${tmpfil}" - fi - - if [ "$use_send" -eq 0 ]; then - post_or_send=`${nmhbindir}/mhparam postproc` else - post_or_send="${nmhbindir}/send" - fi - - status=$? + if [ ${use_send} -eq 0 ]; then + post_or_send=`${nmhbindir}/mhparam postproc` + else + post_or_send="${nmhbindir}/send" + fi - if $debug "${post_or_send}" "${tmpfil}" ${postsendargs}; then - exit ${status} - else - printf "Letter saved in dead.letter\n" - #### exec skips the trap set above. - exec mv "${tmpfil}" dead.letter + if "${post_or_send}" "${tmpfil}" ${postsendargs}; then + exit + else + printf "Letter saved in dead.letter\n" + #### exec skips the trap set above. + exec mv "${tmpfil}" dead.letter + fi fi fi -- 1.7.10.4