aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/indexformat.go24
1 files changed, 19 insertions, 5 deletions
diff --git a/lib/indexformat.go b/lib/indexformat.go
index fa39909..34b4d77 100644
--- a/lib/indexformat.go
+++ b/lib/indexformat.go
@@ -161,16 +161,19 @@ func ParseIndexFormat(conf *config.AercConfig, number int,
}
case 'Z':
// calculate all flags
- var readFlag = ""
+ var readReplyFlag = ""
var delFlag = ""
var flaggedFlag = ""
+ seen := false
+ recent := false
+ answered := false
for _, flag := range msg.Flags {
if flag == models.SeenFlag {
- readFlag = "O" // message is old
+ seen = true
} else if flag == models.RecentFlag {
- readFlag = "N" // message is new
+ recent = true
} else if flag == models.AnsweredFlag {
- readFlag = "r" // message has been replied to
+ answered = true
}
if flag == models.DeletedFlag {
delFlag = "D"
@@ -181,8 +184,19 @@ func ParseIndexFormat(conf *config.AercConfig, number int,
}
// TODO: check gpg stuff
}
+ if seen {
+ if answered {
+ readReplyFlag = "r" // message has been replied to
+ }
+ } else {
+ if recent {
+ readReplyFlag = "N" // message is new
+ } else {
+ readReplyFlag = "O" // message is old
+ }
+ }
retval = append(retval, '3', 's')
- args = append(args, readFlag+delFlag+flaggedFlag)
+ args = append(args, readReplyFlag+delFlag+flaggedFlag)
// Move the below cases to proper alphabetical positions once
// implemented