summary refs log tree commit diff stats
path: root/commands/msg/reply.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/msg/reply.go')
-rw-r--r--commands/msg/reply.go25
1 files changed, 3 insertions, 22 deletions
diff --git a/commands/msg/reply.go b/commands/msg/reply.go
index e09a118..a9ae5a1 100644
--- a/commands/msg/reply.go
+++ b/commands/msg/reply.go
@@ -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))
 			}
 		}
 	}