summary refs log tree commit diff stats
path: root/widgets
diff options
context:
space:
mode:
authorYash Srivastav <yash111998@gmail.com>2019-06-08 01:05:23 +0530
committerDrew DeVault <sir@cmpwn.com>2019-06-07 16:22:01 -0400
commitfca7321639f77bbf825dc897156d7a21993a2c69 (patch)
tree5e503bf4ebd9672eef2af5cbad49b5b73405e548 /widgets
parent6d491569c0f95bec03cc837446c2836acabe99ae (diff)
downloadaerc-fca7321639f77bbf825dc897156d7a21993a2c69.tar.gz
Message list: implement index-format option
Diffstat (limited to 'widgets')
-rw-r--r--widgets/msglist.go7
-rw-r--r--widgets/msgviewer.go28
2 files changed, 11 insertions, 24 deletions
diff --git a/widgets/msglist.go b/widgets/msglist.go
index caa868f..f1cbb31 100644
--- a/widgets/msglist.go
+++ b/widgets/msglist.go
@@ -80,7 +80,12 @@ func (ml *MessageList) Draw(ctx *ui.Context) {
 			style = style.Foreground(tcell.ColorGray)
 		}
 		ctx.Fill(0, row, ctx.Width(), 1, ' ', style)
-		ctx.Printf(0, row, style, "%s", msg.Envelope.Subject)
+		fmtStr, args, err := lib.ParseIndexFormat(ml.conf, i, msg)
+		if err != nil {
+			ctx.Printf(0, row, style, "%v", err)
+		} else {
+			ctx.Printf(0, row, style, fmtStr, args...)
+		}
 
 		row += 1
 	}
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index 6017e50..52407b7 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -2,7 +2,6 @@ package widgets
 
 import (
 	"bufio"
-	"bytes"
 	"fmt"
 	"io"
 	"os/exec"
@@ -44,23 +43,6 @@ type PartSwitcher struct {
 	showHeaders bool
 }
 
-func formatAddresses(addrs []*imap.Address) string {
-	val := bytes.Buffer{}
-	for i, addr := range addrs {
-		if addr.PersonalName != "" {
-			val.WriteString(fmt.Sprintf("%s <%s@%s>",
-				addr.PersonalName, addr.MailboxName, addr.HostName))
-		} else {
-			val.WriteString(fmt.Sprintf("%s@%s",
-				addr.MailboxName, addr.HostName))
-		}
-		if i != len(addrs)-1 {
-			val.WriteString(", ")
-		}
-	}
-	return val.String()
-}
-
 func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
 	store *lib.MessageStore, msg *types.MessageInfo) *MessageViewer {
 
@@ -84,12 +66,12 @@ func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
 	headers.AddChild(
 		&HeaderView{
 			Name:  "From",
-			Value: formatAddresses(msg.Envelope.From),
+			Value: lib.FormatAddresses(msg.Envelope.From),
 		}).At(0, 0)
 	headers.AddChild(
 		&HeaderView{
 			Name:  "To",
-			Value: formatAddresses(msg.Envelope.To),
+			Value: lib.FormatAddresses(msg.Envelope.To),
 		}).At(0, 1)
 	headers.AddChild(
 		&HeaderView{
@@ -379,11 +361,11 @@ func NewPartViewer(conf *config.AercConfig,
 			case "subject":
 				header = msg.Envelope.Subject
 			case "from":
-				header = formatAddresses(msg.Envelope.From)
+				header = lib.FormatAddresses(msg.Envelope.From)
 			case "to":
-				header = formatAddresses(msg.Envelope.To)
+				header = lib.FormatAddresses(msg.Envelope.To)
 			case "cc":
-				header = formatAddresses(msg.Envelope.Cc)
+				header = lib.FormatAddresses(msg.Envelope.Cc)
 			}
 			if f.Regex.Match([]byte(header)) {
 				filter = exec.Command("sh", "-c", f.Command)