mcom: add -r to resume editing drafts

pull/37/head
Leah Neukirchen 7 years ago
parent 856883bf69
commit eeacad9fd8

@ -8,7 +8,9 @@
.Nd compose new, forward, reply to, and send mail .Nd compose new, forward, reply to, and send mail
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm mcom .Nm mcom
.Op Ar recipient .Op Ar recipients\ ...
.Nm mcom
.Fl r Op draft
.Nm mfwd .Nm mfwd
.Op Fl r .Op Fl r
.Op Ar msgs\ ... .Op Ar msgs\ ...
@ -19,15 +21,23 @@
creates a new draft mail and runs an editor. creates a new draft mail and runs an editor.
After editing, a loop is started where the user can re-edit, send or After editing, a loop is started where the user can re-edit, send or
cancel the mail. cancel the mail.
Use
.Sq Nm Fl r
to resume editing a draft.
By default, the last modified draft will be edited.
.Pp .Pp
.Nm mfwd .Nm mfwd
behaves like behaves like
.Nm mcom .Nm mcom
but fills the draft with subject and body prefilled to forward the messages. but fills the draft with subject and body to forward the messages.
By default, messages are forwarded verbatim as MIME attachments. By default, messages are forwarded verbatim as MIME
.Sq Li message/rfc822
attachments.
Use Use
.Fl r .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 .Pp
.Nm mrep .Nm mrep
behaves like behaves like

44
mcom

@ -36,23 +36,49 @@ sendmail=$(mhdr -h sendmail "$MBLAZE/profile")
sendmail_args=$(mhdr -h sendmail-args "$MBLAZE/profile") sendmail_args=$(mhdr -h sendmail-args "$MBLAZE/profile")
sendmail="${sendmail:-sendmail} ${sendmail_args:--t}" 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") outbox=$(mhdr -h outbox "$MBLAZE/profile")
if [ -z "$outbox" ]; then if [ -z "$outbox" ]; then
i=0 if [ -z "$resume" ]; then
while [ -f "snd.$i" ]; do i=0
i=$((i+1)) while [ -f "snd.$i" ]; do
done i=$((i+1))
draft="./snd.$i" done
draft="./snd.$i"
elif [ -z "$draft" ]; then
draft=$(ls -1t ./snd.*[0-9] | sed 1q)
fi
draftmime="./snd.$i.mime" draftmime="./snd.$i.mime"
else else
draft="$(true | mdeliver -v -c -XD "$outbox")" if [ -z "$resume" ]; then
if [ -z "$draft" ]; then draft="$(true | mdeliver -v -c -XD "$outbox")"
printf '%s\n' "$0: failed to create draft in outbox $outbox." 1>&2 if [ -z "$draft" ]; then
exit 1 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 fi
draftmime="$(printf '%s\n' "$draft" | sed 's,\(.*\)/cur/,\1/tmp/mime-,')" draftmime="$(printf '%s\n' "$draft" | sed 's,\(.*\)/cur/,\1/tmp/mime-,')"
fi fi
echo $draft
[ -z "$resume" ] &&
{ {
case "$0" in case "$0" in
*mcom*) *mcom*)

Loading…
Cancel
Save