diff options
Diffstat (limited to 'alot/widgets.py')
-rw-r--r-- | alot/widgets.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/alot/widgets.py b/alot/widgets.py index b388b04c..ae1fecbe 100644 --- a/alot/widgets.py +++ b/alot/widgets.py @@ -358,7 +358,10 @@ class MessageSummaryWidget(urwid.WidgetWrap): class MessageHeaderWidget(urwid.AttrMap): - """displays a "key:value\n" list of email headers""" + """ + displays a "key:value\n" list of email headers. + RFC 2822 style encoded values are decoded into utf8 first. + """ def __init__(self, eml, displayed_headers=None): """ @@ -379,8 +382,10 @@ class MessageHeaderWidget(urwid.AttrMap): for key in displayed_headers: #todo: parse from,cc,bcc seperately into name-addr-widgets if key in eml: - value = reduce(lambda x, y: x + y[0], - email.header.decode_header(eml[key]), '') + valuelist = email.header.decode_header(eml[key]) + value = '' + for v,enc in valuelist: + value = value + v.decode(enc) #sanitize it a bit: value = value.replace('\t', '') value = value.replace('\r', '') |