summaryrefslogtreecommitdiffstats
path: root/pym/portage/elog/messages.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/elog/messages.py')
-rw-r--r--pym/portage/elog/messages.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/pym/portage/elog/messages.py b/pym/portage/elog/messages.py
index a51f0864e..a563ad271 100644
--- a/pym/portage/elog/messages.py
+++ b/pym/portage/elog/messages.py
@@ -12,6 +12,9 @@ portage.proxy.lazyimport.lazyimport(globals(),
from portage.const import EBUILD_PHASES
from portage.localization import _
from portage import os
+from portage import _encodings
+from portage import _unicode_encode
+from portage import _unicode_decode
import codecs
import sys
@@ -41,8 +44,9 @@ def collect_ebuild_messages(path):
logentries[msgfunction] = []
lastmsgtype = None
msgcontent = []
- for l in codecs.open(filename, mode='r',
- encoding='utf_8', errors='replace'):
+ for l in codecs.open(_unicode_encode(filename,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'], errors='replace'):
if not l:
continue
try:
@@ -87,15 +91,16 @@ def _elog_base(level, msg, phase="other", key=None, color=None, out=None):
if color is None:
color = "GOOD"
- if not isinstance(msg, unicode):
- msg = unicode(msg, encoding='utf_8', errors='replace')
+ msg = _unicode_decode(msg,
+ encoding=_encodings['content'], errors='replace')
formatted_msg = colorize(color, " * ") + msg + "\n"
if sys.hexversion < 0x3000000 and \
out in (sys.stdout, sys.stderr) and isinstance(formatted_msg, unicode):
# avoid potential UnicodeEncodeError
- formatted_msg = formatted_msg.encode('utf_8', 'replace')
+ formatted_msg = formatted_msg.encode(
+ _encodings['stdio'], 'backslashreplace')
out.write(formatted_msg)