X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b62b8df32ba9e6b6ed4787d0621c64cb6ac59c83..a514b8a78c447c8abc69386bee9f2c463b1c9362:/uip/mhmail diff --git a/uip/mhmail b/uip/mhmail index 839b82a7..92bf2dbb 100755 --- a/uip/mhmail +++ b/uip/mhmail @@ -50,6 +50,10 @@ finddir() { bindir=`finddir $0` nmhbindir=`cd "$bindir" && pwd` +case `printf 'OK\n' | tail -n 1 2>&1` in + OK) tail='tail -n ' ;; + *) tail='tail -' ;; +esac #### Checks for missing mandatory arguments. @@ -80,8 +84,7 @@ fi tolist= ## To: addresses toarg=0 ## whether currently handling -to attacharg=0 ## whether currently handling -attach -attach_send_switch_added=0 ## whether added "-attach Nmh-Attachment" switch -attachind=Nmh-Attachment ## attachment indicator +attachind=Attach ## attachment indicator body= ## contents of the message body bodyarg=0 ## whether currently handling -body cclist= ## Cc: addresses @@ -110,11 +113,7 @@ for arg in "$@"; do mhmailswitch=1 attacharg=1 use_send=1 - if [ $attach_send_switch_added -eq 0 ]; then - #### Override any send -attach switch in user's profile. - postsendargs="${postsendargs:+$postsendargs }-attach $attachind" - attach_send_switch_added=1 - fi ;; + ;; -b|-bo|-bod|-body) mhmailswitch=1; bodyarg=1 ;; -c|-cc) mhmailswitch=1; ccarg=1 ;; -f|-fr|-fro|-from) mhmailswitch=1; fromarg=1 ;; @@ -205,15 +204,18 @@ if [ "$headerfieldlist" ]; then header="$header$headerfieldlist" fi -#### Set up a file to supply as a draft to post/send. And set a -#### trap to remove it. send moves the file to a backup, so it will -#### remove that, too. +#### Set up a file to supply as a draft to post/send. And set a trap +#### to remove it. send moves the file to a backup and can create a +#### .orig file, so it will remove them, too. umask 077 -tmpdir="${MHTMPDIR:-${TMPDIR:-${TMP:-`$nmhbindir/mhpath +`}}}" +tmpdir="${MHTMPDIR:-${TMPDIR:-`$nmhbindir/mhpath +`}}" tmpfile="$tmpdir/mhmail$$" -tmpfilebackup="'$tmpdir'/,mhmail$$ '$tmpdir'/#mhmail$$" +backup_char=`"$nmhbindir"/mhparam sbackup` +tmpfilebackup="'$tmpdir'/${backup_char}mhmail$$*" tmpfileresent= +trap "rm -f '$tmpfile' $tmpfilebackup ${tmpfileresent:+'$tmpfileresent'}" 0 + message_file= if [ $resent -eq 0 ]; then #### Add blank line after header if not resending. @@ -236,8 +238,6 @@ else fi fi -trap "rm -f '$tmpfile' $tmpfilebackup ${tmpfileresent:+'$tmpfileresent'}" 0 - if [ "$body"x = x ]; then #### First put message header in the file. printf %s "$header" >"$tmpfile" || exit 2 @@ -256,12 +256,12 @@ if [ "$body"x = x ]; then fi #### Add trailing newline to body if it doesn't have one. - if [ `tail -n 1 "$message_file" | wc -l` -ne 1 ]; then + if [ `${tail}1 "$message_file" | wc -l` -ne 1 ]; then printf '\n' >>"$message_file" || exit 2 fi else #### Add trailing newline to body if it doesn't have one. - [ `printf %s "$body" | tail -n 1 | wc -l` -ne 1 ] && body="$body + [ `printf %s "$body" | ${tail}1 | wc -l` -ne 1 ] && body="$body " if [ "$tmpfileresent" ]; then