about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--commands/msg/forward.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/commands/msg/forward.go b/commands/msg/forward.go
index c044fb6..28abbed 100644
--- a/commands/msg/forward.go
+++ b/commands/msg/forward.go
@@ -136,9 +136,15 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error {
 			template = aerc.Config().Templates.Forwards
 		}
 
-		// TODO: something more intelligent than fetching the 1st part
 		// TODO: add attachments!
-		store.FetchBodyPart(msg.Uid, []int{1}, func(reader io.Reader) {
+		part := findPlaintext(msg.BodyStructure, nil)
+		if part == nil {
+			part = findFirstNonMultipart(msg.BodyStructure, nil)
+			if part == nil {
+				part = []int{1}
+			}
+		}
+		store.FetchBodyPart(msg.Uid, part, func(reader io.Reader) {
 			buf := new(bytes.Buffer)
 			buf.ReadFrom(reader)
 			original.Text = buf.String()