diff options
author | Robin Jarry <robin@jarry.cc> | 2024-04-13 21:15:56 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2024-04-13 21:47:50 +0200 |
commit | 1b912fbbe98ae9b0a78da2b448f6121944d9b9b1 (patch) | |
tree | a86d8b0d4909d7abff4d96e75ec8151c57d4b430 /lib | |
parent | 535e7fe3aa50dc56af6449673d13ca0c0ac4e961 (diff) | |
download | aerc-1b912fbbe98ae9b0a78da2b448f6121944d9b9b1.tar.gz |
compose: explicitly identify converted text/* parts
When running :accept, an error is displayed on the review screen:
text/calendar error: no command defined for mime/type
When running :multipart text/xxx, its contents are not specified. They
are regenerated every time the review screen is displayed. When running
:accept, a text/calendar part is added with actual contents.
Update the Part object to hold a boolean initialized when first being
created. If body is nil, identify the part as "Converted" and update its
contents every time the review screen is displayed. When body is not nil
but contains text (e.g. when running :accept), identify the part as
*not* converted and ignore the conversion step.
Fixes: cbcabfafaab2 ("compose: allow writing multipart/alternative messages")
Reported-by: Inwit <inwit@sindominio.net>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Inwit <inwit@sindominio.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/attachment.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/attachment.go b/lib/attachment.go index 6f29da55..a5f1b034 100644 --- a/lib/attachment.go +++ b/lib/attachment.go @@ -19,19 +19,28 @@ type Part struct { MimeType string Params map[string]string Data []byte + Converted bool ConversionError error } func NewPart(mimetype string, params map[string]string, body io.Reader, ) (*Part, error) { - d, err := io.ReadAll(body) - if err != nil { - return nil, err + var d []byte + var err error + var converted bool + if body == nil { + converted = true + } else { + d, err = io.ReadAll(body) + if err != nil { + return nil, err + } } return &Part{ - MimeType: mimetype, - Params: params, - Data: d, + MimeType: mimetype, + Params: params, + Data: d, + Converted: converted, }, nil } |