diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-07-12 04:49:55 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-07-12 04:49:55 -0700 |
commit | 0c71f83404d17e27b1fc319ad6979969c6205062 (patch) | |
tree | 1856dc53b02f9427e10d7a83ddfd2a1b1b2da98e /pym/portage/util/__init__.py | |
parent | f9197545f7686d610d6d153fb2dbbb4d4d65bb7e (diff) | |
download | portage-0c71f83404d17e27b1fc319ad6979969c6205062.tar.gz portage-0c71f83404d17e27b1fc319ad6979969c6205062.tar.bz2 portage-0c71f83404d17e27b1fc319ad6979969c6205062.zip |
Fix output handling for FEATURES="lafilefixing".
Diffstat (limited to 'pym/portage/util/__init__.py')
-rw-r--r-- | pym/portage/util/__init__.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index 821428d12..6e7f5db9d 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -56,10 +56,14 @@ def writemsg(mystr,noiselevel=0,fd=None): fd = sys.stderr if noiselevel <= noiselimit: # avoid potential UnicodeEncodeError - mystr = _unicode_encode(mystr, - encoding=_encodings['stdio'], errors='backslashreplace') - if sys.hexversion >= 0x3000000 and fd in (sys.stdout, sys.stderr): - fd = fd.buffer + if isinstance(fd, StringIO): + mystr = _unicode_decode(mystr, + encoding=_encodings['content'], errors='replace') + else: + mystr = _unicode_encode(mystr, + encoding=_encodings['stdio'], errors='backslashreplace') + if sys.hexversion >= 0x3000000 and fd in (sys.stdout, sys.stderr): + fd = fd.buffer fd.write(mystr) fd.flush() |