aboutsummaryrefslogtreecommitdiffstats
path: root/commands/msg
diff options
context:
space:
mode:
authorReto Brunner <reto@labrat.space>2020-05-17 12:09:34 +0200
committerReto Brunner <reto@labrat.space>2020-05-17 12:15:50 +0200
commitd48ea6231c76fbfff334be647c8c4d05bf9de387 (patch)
tree0ccd12d3cd190407a0918171baf6dac2945316e8 /commands/msg
parentcff4476f3bb61510acefd567deb39f58351de215 (diff)
downloadaerc-d48ea6231c76fbfff334be647c8c4d05bf9de387.tar.gz
Move findPlaintext / findFirstNonMultipart to utils
They are used by more than one command and as such need to be in a common file.
Diffstat (limited to 'commands/msg')
-rw-r--r--commands/msg/reply.go31
-rw-r--r--commands/msg/utils.go32
2 files changed, 32 insertions, 31 deletions
diff --git a/commands/msg/reply.go b/commands/msg/reply.go
index e4c4577d..762c15ea 100644
--- a/commands/msg/reply.go
+++ b/commands/msg/reply.go
@@ -196,34 +196,3 @@ func (reply) Execute(aerc *widgets.Aerc, args []string) error {
return addTab()
}
}
-
-func findPlaintext(bs *models.BodyStructure, path []int) []int {
- for i, part := range bs.Parts {
- cur := append(path, i+1)
- if strings.ToLower(part.MIMEType) == "text" &&
- strings.ToLower(part.MIMESubType) == "plain" {
- return cur
- }
- if strings.ToLower(part.MIMEType) == "multipart" {
- if path := findPlaintext(part, cur); path != nil {
- return path
- }
- }
- }
- return nil
-}
-
-func findFirstNonMultipart(bs *models.BodyStructure, path []int) []int {
- for i, part := range bs.Parts {
- cur := append(path, i+1)
- mimetype := strings.ToLower(part.MIMEType)
- if mimetype != "multipart" {
- return path
- } else if mimetype == "multipart" {
- if path := findPlaintext(part, cur); path != nil {
- return path
- }
- }
- }
- return nil
-}
diff --git a/commands/msg/utils.go b/commands/msg/utils.go
index cad0f82e..5eb5fe53 100644
--- a/commands/msg/utils.go
+++ b/commands/msg/utils.go
@@ -2,6 +2,7 @@ package msg
import (
"errors"
+ "strings"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/lib"
@@ -48,3 +49,34 @@ func (h *helper) messages() ([]*models.MessageInfo, error) {
}
return commands.MsgInfoFromUids(store, uid)
}
+
+func findPlaintext(bs *models.BodyStructure, path []int) []int {
+ for i, part := range bs.Parts {
+ cur := append(path, i+1)
+ if strings.ToLower(part.MIMEType) == "text" &&
+ strings.ToLower(part.MIMESubType) == "plain" {
+ return cur
+ }
+ if strings.ToLower(part.MIMEType) == "multipart" {
+ if path := findPlaintext(part, cur); path != nil {
+ return path
+ }
+ }
+ }
+ return nil
+}
+
+func findFirstNonMultipart(bs *models.BodyStructure, path []int) []int {
+ for i, part := range bs.Parts {
+ cur := append(path, i+1)
+ mimetype := strings.ToLower(part.MIMEType)
+ if mimetype != "multipart" {
+ return path
+ } else if mimetype == "multipart" {
+ if path := findPlaintext(part, cur); path != nil {
+ return path
+ }
+ }
+ }
+ return nil
+}