about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--man/mcom.19
-rwxr-xr-xmcom19
2 files changed, 24 insertions, 4 deletions
diff --git a/man/mcom.1 b/man/mcom.1
index 17fd814..53a6c79 100644
--- a/man/mcom.1
+++ b/man/mcom.1
@@ -69,6 +69,15 @@ to prefill header fields,
 e.g. you can use
 .Sq Nm mcom Fl to No merrilyn Fl cc No elea becci Fl subject No 'Party invite'
 to create a draft with the To, Cc and Subject fields already set.
+The flag
+.Fl body Ar file
+can be used to prepopulate the draft for
+.Nm mcom
+and
+.Nm mrep
+with the contents of
+.Ar file .
+.Pp
 Note that these flags apply to
 .Em all
 arguments after them
diff --git a/mcom b/mcom
index eb965b3..4f8f4f6 100755
--- a/mcom
+++ b/mcom
@@ -211,12 +211,17 @@ fi
 			printf '%s' "$hdrs" | mhdr -M -h bcc /dev/stdin |
 				commajoin | sed 's/^/Bcc: /'
 			printf '%s\n' "$hdrs" | awk '{ print }' |
-				msed "/to/d; /cc/d; /bcc/d" /dev/stdin
+				msed "/to/d; /cc/d; /bcc/d; /body/d" /dev/stdin
 		} | msed "/cc/a//; /bcc/a//; /subject/a//; /from/a/$default_from/" /dev/stdin | sed '/^$/d'
 		msgid
 		museragent
 		cat "$MBLAZE/headers" 2>/dev/null
-		printf '\n\n'
+		printf '\n'
+		(
+			IFS=$NL
+			cat -- /dev/null $(printf '%s' "$hdrs" | mhdr -M -h body /dev/stdin)
+		)
+		printf '\n'
 		;;
 	*mfwd*)
 		{
@@ -277,8 +282,9 @@ fi
 			printf 'Cc: %s\n' \
 			       "$(mhdr -d -A -h to:cc: "$1" |notmine |commajoin)"
 			printf 'Bcc: \n'
-			printf '%s\n' "$hdrs" | awk '/./ { print }'
-		fi
+			printf '%s\n' "$hdrs" | awk '{ print }' |
+				msed "/body/d" /dev/stdin
+		fi | sed '/^$/d'
 		printf 'Subject: Re: %s\n' "$(COLUMNS=10000 mscan -f '%S' "$1")"
 		from=$(mhdr -h local-mailbox "$MBLAZE/profile")
 		[ "$from" ] && printf 'From: %s\n' "$from"
@@ -298,6 +304,11 @@ fi
 
 		mquote "$1"
 		printf '\n'
+		(
+			IFS=$NL
+			cat -- /dev/null $(printf '%s' "$hdrs" | mhdr -M -h body /dev/stdin)
+		)
+		printf '\n'
 		;;
 	esac