summaryrefslogtreecommitdiffstats
path: root/pym/portage/elog/messages.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-08-21 04:03:15 +0000
committerZac Medico <zmedico@gentoo.org>2009-08-21 04:03:15 +0000
commit3d11b48d840be203945ff86e46a36fd813008d27 (patch)
tree2001597adc2ddad19a4983a93ca615369fa52f3c /pym/portage/elog/messages.py
parentfbceadf2a286ddc7ac2bf2ae35f491cfc7eb71e8 (diff)
downloadportage-3d11b48d840be203945ff86e46a36fd813008d27.tar.gz
portage-3d11b48d840be203945ff86e46a36fd813008d27.tar.bz2
portage-3d11b48d840be203945ff86e46a36fd813008d27.zip
Use _encodings where appropriate and add _encodings['stdio'] for stdout
encoding. svn path=/main/trunk/; revision=14111
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)