forward: allow ':forward -A' with no address

Allow using the command ':forward -A' without specifying an email
address inline.

Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
Tim Culverhouse 2022-04-14 12:13:44 -05:00 committed by Robin Jarry
parent fb0e9e3e41
commit 6a87d8be72
1 changed files with 9 additions and 6 deletions

View File

@ -41,10 +41,18 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error {
} }
attach := false attach := false
template := "" template := ""
var tolist []*mail.Address
for _, opt := range opts { for _, opt := range opts {
switch opt.Option { switch opt.Option {
case 'A': case 'A':
attach = true attach = true
to := strings.Join(args[optind:], ", ")
if strings.Contains(to, "@") {
tolist, err = mail.ParseAddressList(to)
if err != nil {
return fmt.Errorf("invalid to address(es): %v", err)
}
}
case 'T': case 'T':
template = opt.Value template = opt.Value
} }
@ -69,12 +77,7 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error {
subject := "Fwd: " + msg.Envelope.Subject subject := "Fwd: " + msg.Envelope.Subject
h.SetSubject(subject) h.SetSubject(subject)
if len(args) != 1 { if len(tolist) > 0 {
to := strings.Join(args[optind:], ", ")
tolist, err := mail.ParseAddressList(to)
if err != nil {
return fmt.Errorf("invalid to address(es): %v", err)
}
h.SetAddressList("to", tolist) h.SetAddressList("to", tolist)
} }