forward,recall: fix charsets in part attachment

Fix charset to UTF-8 in part attachments. The forward and recall
commands fetch message parts with the go-message package which decodes
to UTF-8. Hence, we should set the charset of the part attachment to
utf-8 and not just copying over the one from the original message.

Reported-by: Bence Ferdinandy <bence@ferdinandy.com>
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
Koni Marti 2022-10-05 22:50:40 +02:00 committed by Robin Jarry
parent d2f4f12f66
commit c6561d32a8
3 changed files with 23 additions and 4 deletions

View file

@ -198,12 +198,13 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error {
}
store.FetchBodyPart(msg.Uid, p, func(reader io.Reader) {
mime := fmt.Sprintf("%s/%s", bs.MIMEType, bs.MIMESubType)
name, ok := bs.Params["name"]
params := lib.SetUtf8Charset(bs.Params)
name, ok := params["name"]
if !ok {
name = fmt.Sprintf("%s_%s_%d", bs.MIMEType, bs.MIMESubType, rand.Uint64())
}
mu.Lock()
composer.AddPartAttachment(name, mime, bs.Params, reader)
composer.AddPartAttachment(name, mime, params, reader)
mu.Unlock()
})
}

View file

@ -204,12 +204,13 @@ func (Recall) Execute(aerc *widgets.Aerc, args []string) error {
}
msg.FetchBodyPart(p, func(reader io.Reader) {
mime := fmt.Sprintf("%s/%s", bs.MIMEType, bs.MIMESubType)
name, ok := bs.Params["name"]
params := lib.SetUtf8Charset(bs.Params)
name, ok := params["name"]
if !ok {
name = fmt.Sprintf("%s_%s_%d", bs.MIMEType, bs.MIMESubType, rand.Uint64())
}
mu.Lock()
composer.AddPartAttachment(name, mime, bs.Params, reader)
composer.AddPartAttachment(name, mime, params, reader)
mu.Unlock()
})
}