about summary refs log tree commit diff stats
path: root/commands/account
diff options
context:
space:
mode:
authorJeff Martin <jeffmartin@gmail.com>2020-08-21 11:58:30 -0700
committerReto Brunner <reto@labrat.space>2020-08-31 22:00:28 +0200
commit0acb28645fe73d488b82d2915add6c262028bbe3 (patch)
treecd197771f4172e2da75c9fec6c5862cd377d7b51 /commands/account
parent43c4f2f3ab8bd914ce1b5c1841724f3c55550e9c (diff)
downloadaerc-0acb28645fe73d488b82d2915add6c262028bbe3.tar.gz
handle message unknown charset error
This change handles message parse errors by printing the error when the
user tries to view the message. Specifically only handling unknown
charset errors in this patch, but there are many types of invalid
messages that can be handled in this way.

aerc currently leaves certain messages in the msglist in the pending
(spinner) state, and I'm unable to view or modify the message. aerc also
only prints parse errors with message when they are initially loaded.
This UX is a little better, because you can still see the header info
about the message, and if you try to view it, you will see the specific
error.
Diffstat (limited to 'commands/account')
-rw-r--r--commands/account/view.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/commands/account/view.go b/commands/account/view.go
index b421666..d52ce5b 100644
--- a/commands/account/view.go
+++ b/commands/account/view.go
@@ -38,6 +38,10 @@ func (ViewMessage) Execute(aerc *widgets.Aerc, args []string) error {
 	if deleted {
 		return nil
 	}
+	if msg.Error != nil {
+		aerc.PushError(msg.Error.Error())
+		return nil
+	}
 	lib.NewMessageStoreView(msg, store, aerc.DecryptKeys,
 		func(view lib.MessageView, err error) {
 			if err != nil {