diff options
Diffstat (limited to 'alot/db/message.py')
-rw-r--r-- | alot/db/message.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/alot/db/message.py b/alot/db/message.py index 61f95383..41654c4a 100644 --- a/alot/db/message.py +++ b/alot/db/message.py @@ -34,13 +34,13 @@ def _render_part(part, field_key='copiousoutput'): ctype = part.get_content_type() raw_payload = part.get_content() - if isinstance(raw_payload, str): - raw_payload = raw_payload.encode('utf-8') - rendered_payload = None # get mime handler _, entry = settings.mailcap_find_match(ctype, key=field_key) if entry is not None: + if isinstance(raw_payload, str): + raw_payload = raw_payload.encode('utf-8') + tempfile_name = None stdin = None handler_raw_commandstring = entry['view'] @@ -75,6 +75,11 @@ def _render_part(part, field_key='copiousoutput'): # remove tempfile if tempfile_name: os.unlink(tempfile_name) + elif part.get_content_maintype() == 'text': + # return text parts without a handler as-is + rendered_payload = raw_payload + if not isinstance(rendered_payload, str): + rendered_payload = rendered_payload.decode('utf-8', errors = 'backslashreplace') return rendered_payload |