diff options
author | Julian Mehne <julian.mehne@posteo.de> | 2018-01-10 02:59:45 +0100 |
---|---|---|
committer | Julian Mehne <julian.mehne@posteo.de> | 2018-01-10 02:59:45 +0100 |
commit | bf25b1a9dd6f9183ca053dee6677401e7438f7f2 (patch) | |
tree | db4e67ea91e75bab5b229e94fdcbe6683f915482 /alot/ui.py | |
parent | c81582a36aeaacbe762fa24208bc778fd4dbf275 (diff) |
Fix writing/loading history, if a command contains a non-ascii character.
Bug:
- alot -l log -d debug
- :search รถ<enter>
- quit alot
- in log file: stacktrace with UnicodeEncodeError, when writing the histfile.
Diffstat (limited to 'alot/ui.py')
-rw-r--r-- | alot/ui.py | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -6,6 +6,7 @@ from __future__ import absolute_import import logging import os import signal +import codecs from twisted.internet import reactor, defer, task import urwid @@ -729,7 +730,7 @@ class UI(object): if size == 0: return [] if os.path.exists(path): - with open(path) as histfile: + with codecs.open(path, 'r', encoding='utf-8') as histfile: lines = [line.rstrip('\n') for line in histfile] if size > 0: lines = lines[-size:] @@ -759,7 +760,7 @@ class UI(object): if not os.path.exists(directory): os.makedirs(directory) # Write linewise to avoid building a large string in menory. - with open(path, 'w') as histfile: + with codecs.open(path, 'w', encoding='utf-8') as histfile: for line in history: histfile.write(line) histfile.write('\n') |