[yum-commits] yum/misc.py
zpavlas at osuosl.org
zpavlas at osuosl.org
Mon Apr 2 14:14:20 UTC 2012
yum/misc.py | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
New commits:
commit 74d21178642387998245f49d47353f3f5a84aef2
Author: ZdenÄk Pavlas <zpavlas at redhat.com>
Date: Mon Apr 2 11:24:09 2012 +0200
sys.stdout: encode unicode strings only. BZ 807619.
Avoid codecs.getwriter() as it's not compatible with
already encoded strings.
diff --git a/yum/misc.py b/yum/misc.py
index 5321003..e3952b5 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -1006,9 +1006,17 @@ def setup_locale(override_codecs=True, override_time=False):
locale.setlocale(locale.LC_ALL, 'C')
if override_codecs:
- import codecs
- sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
- sys.stdout.errors = 'replace'
+ class UnicodeStream:
+ def __init__(self, stream, encoding):
+ self.stream = stream
+ self.encoding = encoding
+ def write(self, s):
+ if isinstance(s, unicode):
+ s = s.encode(self.encoding, 'replace')
+ self.stream.write(s)
+ def __getattr__(self, name):
+ return getattr(self.stream, name)
+ sys.stdout = UnicodeStream(sys.stdout, locale.getpreferredencoding())
def get_my_lang_code():
More information about the Yum-commits
mailing list