summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--commands/account/compose.go17
-rw-r--r--doc/aerc.1.scd2
2 files changed, 15 insertions, 4 deletions
diff --git a/commands/account/compose.go b/commands/account/compose.go
index fa673f0..a4836b7 100644
--- a/commands/account/compose.go
+++ b/commands/account/compose.go
@@ -1,6 +1,7 @@
 package account
 
 import (
+	"errors"
 	"regexp"
 	"strings"
 
@@ -22,7 +23,6 @@ func (_ Compose) Complete(aerc *widgets.Aerc, args []string) []string {
 	return nil
 }
 
-// TODO: Accept arguments for message body
 func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
 	body, err := buildBody(args)
 	if err != nil {
@@ -46,7 +46,7 @@ func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
 
 func buildBody(args []string) (string, error) {
 	var body, headers string
-	opts, _, err := getopt.Getopts(args, "H:")
+	opts, optind, err := getopt.Getopts(args, "H:")
 	if err != nil {
 		return "", err
 	}
@@ -62,8 +62,19 @@ func buildBody(args []string) (string, error) {
 			}
 		}
 	}
+	posargs := args[optind:]
+	if len(posargs) > 1 {
+		return "", errors.New("Usage: compose [-H] [body]")
+	}
+	if len(posargs) == 1 {
+		body = posargs[0]
+	}
 	if headers != "" {
-		body = headers + "\n\n"
+		if len(body) > 0 {
+			body = headers + "\n" + body
+		} else {
+			body = headers + "\n\n"
+		}
 	}
 	return body, nil
 }
diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd
index 67bfba2..5f2f83b 100644
--- a/doc/aerc.1.scd
+++ b/doc/aerc.1.scd
@@ -139,7 +139,7 @@ message list, the message in the message viewer, etc).
 *cf* <folder>
 	Change the folder shown in the message list.
 
-*compose* [-H]
+*compose* [-H] [<body>]
 	Open the compose window to send a new email. The new email will be sent with
 	the current account's outgoing transport configuration. For details on
 	configuring outgoing mail delivery consult *aerc-config*(5).