summary refs log tree commit diff stats
path: root/worker
diff options
context:
space:
mode:
Diffstat (limited to 'worker')
-rw-r--r--worker/lib/parse.go10
-rw-r--r--worker/maildir/search.go8
2 files changed, 11 insertions, 7 deletions
diff --git a/worker/lib/parse.go b/worker/lib/parse.go
index ded7a83..a14a6d3 100644
--- a/worker/lib/parse.go
+++ b/worker/lib/parse.go
@@ -21,8 +21,9 @@ var dateRe = regexp.MustCompile(`(((Mon|Tue|Wed|Thu|Fri|Sat|Sun))[,]?\s[0-9]{1,2
 	`([0-9]{4})\s([0-9]{2}):([0-9]{2})(:([0-9]{2}))?\s([\+|\-][0-9]{4})\s?`)
 
 func FetchEntityPartReader(e *message.Entity, index []int) (io.Reader, error) {
-	if len(index) < 1 {
-		return nil, fmt.Errorf("no part to read")
+	if len(index) == 0 {
+		// non multipart, simply return everything
+		return bufReader(e)
 	}
 	if mpr := e.MultipartReader(); mpr != nil {
 		idx := 0
@@ -41,10 +42,7 @@ func FetchEntityPartReader(e *message.Entity, index []int) (io.Reader, error) {
 			}
 		}
 	}
-	if index[0] != 1 {
-		return nil, fmt.Errorf("cannont return non-first part of non-multipart")
-	}
-	return bufReader(e)
+	return nil, fmt.Errorf("FetchEntityPartReader: unexpected code reached")
 }
 
 //TODO: the UI doesn't seem to like readers which aren't buffers
diff --git a/worker/maildir/search.go b/worker/maildir/search.go
index 005f6fa..ad3a45f 100644
--- a/worker/maildir/search.go
+++ b/worker/maildir/search.go
@@ -10,6 +10,7 @@ import (
 
 	"git.sr.ht/~sircmpwn/getopt"
 
+	"git.sr.ht/~sircmpwn/aerc/lib"
 	"git.sr.ht/~sircmpwn/aerc/models"
 )
 
@@ -138,7 +139,12 @@ func (w *Worker) searchKey(key uint32, criteria *searchCriteria,
 	}
 	if parts&BODY > 0 {
 		// TODO: select which part to search, maybe look for text/plain
-		reader, err := message.NewBodyPartReader([]int{1})
+		mi, err := message.MessageInfo()
+		if err != nil {
+			return false, err
+		}
+		path := lib.FindFirstNonMultipart(mi.BodyStructure, nil)
+		reader, err := message.NewBodyPartReader(path)
 		if err != nil {
 			return false, err
 		}
>181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219