Message list: implement index-format option

This commit is contained in:
Yash Srivastav 2019-06-08 01:05:23 +05:30 committed by Drew DeVault
commit fca7321639
8 changed files with 294 additions and 55 deletions
commands/msg

View file

@ -6,7 +6,6 @@ import (
"fmt"
"io"
gomail "net/mail"
"regexp"
"strings"
"git.sr.ht/~sircmpwn/getopt"
@ -15,6 +14,7 @@ import (
_ "github.com/emersion/go-message/charset"
"github.com/emersion/go-message/mail"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/widgets"
)
@ -23,25 +23,6 @@ func init() {
register("forward", Reply)
}
var (
atom *regexp.Regexp = regexp.MustCompile("^[a-z0-9!#$%7'*+-/=?^_`{}|~ ]+$")
)
func formatAddress(addr *imap.Address) string {
if addr.PersonalName != "" {
if atom.MatchString(addr.PersonalName) {
return fmt.Sprintf("%s <%s@%s>",
addr.PersonalName, addr.MailboxName, addr.HostName)
} else {
return fmt.Sprintf("\"%s\" <%s@%s>",
strings.ReplaceAll(addr.PersonalName, "\"", "'"),
addr.MailboxName, addr.HostName)
}
} else {
return fmt.Sprintf("<%s@%s>", addr.MailboxName, addr.HostName)
}
}
func Reply(aerc *widgets.Aerc, args []string) error {
opts, optind, err := getopt.Getopts(args[1:], "aq")
if err != nil {
@ -96,14 +77,14 @@ func Reply(aerc *widgets.Aerc, args []string) error {
}
if replyAll {
for _, addr := range msg.Envelope.Cc {
cc = append(cc, formatAddress(addr))
cc = append(cc, lib.FormatAddress(addr))
}
for _, addr := range msg.Envelope.To {
address := fmt.Sprintf("%s@%s", addr.MailboxName, addr.HostName)
if address == us.Address {
continue
}
to = append(to, formatAddress(addr))
to = append(to, lib.FormatAddress(addr))
}
}
}