summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/msgstore.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 3c77c49..c6cd2c3 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -1,6 +1,8 @@
 package lib
 
 import (
+	"time"
+
 	"github.com/emersion/go-imap"
 	"github.com/mohamedattahri/mail"
 
@@ -91,10 +93,22 @@ func (store *MessageStore) FetchBodies(uids []uint32,
 func (store *MessageStore) merge(
 	to *types.MessageInfo, from *types.MessageInfo) {
 
-	// TODO: Merge more shit
+	if from.BodyStructure != nil {
+		to.BodyStructure = from.BodyStructure
+	}
 	if from.Envelope != nil {
 		to.Envelope = from.Envelope
 	}
+	if len(from.Flags) != 0 {
+		to.Flags = from.Flags
+	}
+	if from.Size != 0 {
+		to.Size = from.Size
+	}
+	var zero time.Time
+	if from.InternalDate != zero {
+		to.InternalDate = from.InternalDate
+	}
 }
 
 func (store *MessageStore) Update(msg types.WorkerMessage) {