From eeacad9fd8c6ba56ef20a19ca4a564a517ee6f51 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Mon, 19 Jun 2017 14:00:29 +0200 Subject: mcom: add -r to resume editing drafts --- man/mcom.1 | 18 ++++++++++++++---- mcom | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/man/mcom.1 b/man/mcom.1 index 1bee90a..d14d86d 100644 --- a/man/mcom.1 +++ b/man/mcom.1 @@ -8,7 +8,9 @@ .Nd compose new, forward, reply to, and send mail .Sh SYNOPSIS .Nm mcom -.Op Ar recipient +.Op Ar recipients\ ... +.Nm mcom +.Fl r Op draft .Nm mfwd .Op Fl r .Op Ar msgs\ ... @@ -19,15 +21,23 @@ creates a new draft mail and runs an editor. After editing, a loop is started where the user can re-edit, send or cancel the mail. +Use +.Sq Nm Fl r +to resume editing a draft. +By default, the last modified draft will be edited. .Pp .Nm mfwd behaves like .Nm mcom -but fills the draft with subject and body prefilled to forward the messages. -By default, messages are forwarded verbatim as MIME attachments. +but fills the draft with subject and body to forward the messages. +By default, messages are forwarded verbatim as MIME +.Sq Li message/rfc822 +attachments. Use .Fl r -to forward as rendered plain text, using RFC934 message encapsulation. +to forward as +.Xr mshow 1 +rendered plain text, using RFC934 message encapsulation. .Pp .Nm mrep behaves like diff --git a/mcom b/mcom index 9fea4c6..31d655c 100755 --- a/mcom +++ b/mcom @@ -36,23 +36,49 @@ sendmail=$(mhdr -h sendmail "$MBLAZE/profile") sendmail_args=$(mhdr -h sendmail-args "$MBLAZE/profile") sendmail="${sendmail:-sendmail} ${sendmail_args:--t}" +resume= +case "$0" in + *mcom*) + if [ "$1" = -r ]; then + shift + resume=1 + if [ "$#" -gt 0 ]; then + echo "used dreaft $1" + draft="$1" + shift + fi + fi + ;; +esac + outbox=$(mhdr -h outbox "$MBLAZE/profile") if [ -z "$outbox" ]; then - i=0 - while [ -f "snd.$i" ]; do - i=$((i+1)) - done - draft="./snd.$i" + if [ -z "$resume" ]; then + i=0 + while [ -f "snd.$i" ]; do + i=$((i+1)) + done + draft="./snd.$i" + elif [ -z "$draft" ]; then + draft=$(ls -1t ./snd.*[0-9] | sed 1q) + fi draftmime="./snd.$i.mime" else - draft="$(true | mdeliver -v -c -XD "$outbox")" - if [ -z "$draft" ]; then - printf '%s\n' "$0: failed to create draft in outbox $outbox." 1>&2 - exit 1 + if [ -z "$resume" ]; then + draft="$(true | mdeliver -v -c -XD "$outbox")" + if [ -z "$draft" ]; then + printf '%s\n' "$0: failed to create draft in outbox $outbox." 1>&2 + exit 1 + fi + elif [ -z "$draft" ]; then + draft=$(mlist -D "$outbox" | msort -r -M | sed 1q) fi draftmime="$(printf '%s\n' "$draft" | sed 's,\(.*\)/cur/,\1/tmp/mime-,')" fi +echo $draft + +[ -z "$resume" ] && { case "$0" in *mcom*) -- cgit 1.4.1