about summary refs log tree commit diff stats
path: root/commands/msg
diff options
context:
space:
mode:
Diffstat (limited to 'commands/msg')
-rw-r--r--commands/msg/forward.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/commands/msg/forward.go b/commands/msg/forward.go
index d7ecf66..ca29096 100644
--- a/commands/msg/forward.go
+++ b/commands/msg/forward.go
@@ -8,6 +8,7 @@ import (
 	"github.com/emersion/go-message"
 	"github.com/emersion/go-message/mail"
 	"io"
+	"strings"
 )
 
 type forward struct{}
@@ -25,8 +26,9 @@ func (_ forward) Complete(aerc *widgets.Aerc, args []string) []string {
 }
 
 func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
+	to := ""
 	if len(args) != 1 {
-		return errors.New("Usage: forward")
+		to = strings.Join(args[1:], ", ")
 	}
 
 	widget := aerc.SelectedTab().(widgets.ProvidesMessage)
@@ -46,6 +48,7 @@ func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
 
 	subject := "Fwd: " + msg.Envelope.Subject
 	defaults := map[string]string{
+		"To": to,
 		"Subject": subject,
 	}
 	composer := widgets.NewComposer(aerc.Config(), acct.AccountConfig(),
@@ -53,6 +56,11 @@ func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
 
 	addTab := func() {
 		tab := aerc.NewTab(composer, subject)
+		if len(args) == 1 {
+			composer.FocusRecipient()
+		} else {
+			composer.FocusTerminal()
+		}
 		composer.OnHeaderChange("Subject", func(subject string) {
 			if subject == "" {
 				tab.Name = "New email"