From 6ef7be46cc376b981a72bd987a91881e4edefb75 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 9 Dec 2009 05:42:26 +0000 Subject: When overridding sys.std* in python2, use binary streams. svn path=/main/trunk/; revision=14974 --- pym/_emerge/BinpkgVerifier.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pym/_emerge/BinpkgVerifier.py b/pym/_emerge/BinpkgVerifier.py index 0283883c..eebccfa7 100644 --- a/pym/_emerge/BinpkgVerifier.py +++ b/pym/_emerge/BinpkgVerifier.py @@ -35,13 +35,15 @@ class BinpkgVerifier(AsynchronousTask): # so that we get the right class (otherwise our # code that expects the 'buffer' attribute # will break). - open_func = open + log_file = open(_unicode_encode(self.logfile, + encoding=_encodings['fs'], errors='strict'), + mode='a', encoding=_encodings['content'], + errors='backslashreplace') else: - open_func = codecs.open - log_file = open_func(_unicode_encode(self.logfile, - encoding=_encodings['fs'], errors='strict'), - mode='a', encoding=_encodings['content'], - errors='backslashreplace') + # For python2, sys.std* are expected to be binary streams. + log_file = open(_unicode_encode(self.logfile, + encoding=_encodings['fs'], errors='strict'), + mode='ab') try: if log_file is not None: sys.stdout = log_file -- cgit v1.2.3-65-gdbad