From: Zac Medico Date: Thu, 10 Dec 2009 01:04:33 +0000 (-0000) Subject: When overridding sys.std* in python2, use binary streams. (trunk r14974) X-Git-Tag: v2.1.7.12~6 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=bdf9748377e40813b7794992f656bf1c33516132;p=portage.git When overridding sys.std* in python2, use binary streams. (trunk r14974) svn path=/main/branches/2.1.7/; revision=15008 --- diff --git a/pym/_emerge/BinpkgVerifier.py b/pym/_emerge/BinpkgVerifier.py index 0283883c1..eebccfa74 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