summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-01-26 12:19:54 +0100
committerAnton Khirnov <anton@khirnov.net>2021-01-26 12:20:38 +0100
commite688d4876a761f9c89e427e9c451fd2968123909 (patch)
treeaa2da896d7536df1a08064b6d2fe340515d68471
parent13cba7ad0bfcbb8eacfffaf1913d11897c8f91c2 (diff)
ComposeCommand: read template/signature as text
We should not try to guess anything, just use the platform encoding. Remove helper.try_decode(), as it has no more callers.
-rw-r--r--alot/commands/globals.py15
-rw-r--r--alot/helper.py11
2 files changed, 8 insertions, 18 deletions
diff --git a/alot/commands/globals.py b/alot/commands/globals.py
index 310a59db..b95d37b9 100644
--- a/alot/commands/globals.py
+++ b/alot/commands/globals.py
@@ -743,8 +743,8 @@ class ComposeCommand(Command):
priority='error')
raise self.ApplyError()
try:
- with open(path, 'rb') as f:
- template = helper.try_decode(f.read())
+ with open(path, 'r') as f:
+ template = f.read()
self.envelope.parse_template(template)
except Exception as e:
ui.notify(str(e), priority='error')
@@ -804,11 +804,12 @@ class ComposeCommand(Command):
self.envelope.attach(sig, filename=name)
logging.debug('attached')
else:
- with open(sig, 'rb') as f:
- sigcontent = f.read()
- mimetype = helper.guess_mimetype(sigcontent)
- if mimetype.startswith('text'):
- sigcontent = helper.try_decode(sigcontent)
+ try:
+ with open(sig, 'r') as f:
+ sigcontent = f.read()
+ except UnicodeDecodeError:
+ ui.notify('Could not read signature', priority = 'error')
+ else:
self.envelope.body += '\n' + sigcontent
else:
ui.notify('could not locate signature: %s' % sig,
diff --git a/alot/helper.py b/alot/helper.py
index 8a7261e5..4283faea 100644
--- a/alot/helper.py
+++ b/alot/helper.py
@@ -195,17 +195,6 @@ def guess_encoding(blob):
raise Exception('Unknown magic API')
-def try_decode(blob):
- """Guess the encoding of blob and try to decode it into a str.
-
- :param bytes blob: The bytes to decode
- :returns: the decoded blob
- :rtype: str
- """
- assert isinstance(blob, bytes), 'cannot decode a str or non-bytes object'
- return blob.decode(guess_encoding(blob))
-
-
def libmagic_version_at_least(version):
"""
checks if the libmagic library installed is more recent than a given