Use _encodings where appropriate.
authorZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 07:13:53 +0000 (07:13 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 07:13:53 +0000 (07:13 -0000)
svn path=/main/trunk/; revision=14100

pym/_emerge/EbuildBuild.py
pym/_emerge/EbuildFetcher.py
pym/_emerge/EbuildMetadataPhase.py

index f56adb6607a9f3a217cf6a0cb5bed890bbec8c8a..55c20ec096fefbbde13dcd926b02e672aac0d6a3 100644 (file)
@@ -13,6 +13,8 @@ from _emerge.EbuildBuildDir import EbuildBuildDir
 from portage.util import writemsg
 import portage
 from portage import os
+from portage import _encodings
+from portage import _unicode_encode
 import codecs
 from portage.output import colorize
 class EbuildBuild(CompositeTask):
@@ -182,8 +184,9 @@ class EbuildBuild(CompositeTask):
 
                        log_path = self.settings.get("PORTAGE_LOG_FILE")
                        if log_path is not None:
-                               log_file = codecs.open(log_path, mode='a',
-                                       encoding='utf_8', errors='replace')
+                               log_file = codecs.open(_unicode_encode(log_path,
+                                       encoding=_encodings['fs'], errors='strict'),
+                                       mode='a', encoding=_encodings['content'], errors='replace')
                                try:
                                        log_file.write(msg)
                                finally:
index 6ce72b9e36e123659a6a16d11d02c16382709dd5..76ae5bf750df8a585a153e3840eaacd9fd7e5233 100644 (file)
@@ -7,6 +7,8 @@ from _emerge.EbuildBuildDir import EbuildBuildDir
 import sys
 import portage
 from portage import os
+from portage import _encodings
+from portage import _unicode_encode
 import codecs
 from portage.elog.messages import eerror
 
@@ -88,8 +90,9 @@ class EbuildFetcher(SpawnProcess):
                                elog_out = None
                                if self.logfile is not None:
                                        if self.background:
-                                               elog_out = codecs.open(self.logfile, mode='a',
-                                                       encoding='utf_8', errors='replace')
+                                               elog_out = codecs.open(_unicode_encode(self.logfile,
+                                                       encoding=_encodings['fs'], errors='strict'),
+                                                       mode='a', encoding=_encodings['content'], errors='replace')
                                msg = "Fetch failed for '%s'" % (self.pkg.cpv,)
                                if self.logfile is not None:
                                        msg += ", Log file:"
index a84d722bebf5e5902f0d89fad840f73b5f40f549..60b91edb8713d74108850258609640e7106b8cdf 100644 (file)
@@ -8,6 +8,8 @@ import sys
 from portage.cache.mappings import slot_dict_class
 import portage
 from portage import os
+from portage import _encodings
+from portage import _unicode_encode
 from itertools import izip
 import fcntl
 import codecs
@@ -38,8 +40,11 @@ class EbuildMetadataPhase(SubProcess):
                                os.path.basename(ebuild_path))
                if eapi is None and \
                        'parse-eapi-ebuild-head' in settings.features:
-                       eapi = portage._parse_eapi_ebuild_head(codecs.open(ebuild_path,
-                               mode='r', encoding='utf_8', errors='replace'))
+                       eapi = portage._parse_eapi_ebuild_head(
+                               codecs.open(_unicode_encode(ebuild_path,
+                               encoding=_encodings['fs'], errors='strict'),
+                               mode='r', encoding=_encodings['repo.content'],
+                               errors='replace'))
 
                if eapi is not None:
                        if not portage.eapi_is_supported(eapi):
@@ -82,7 +87,7 @@ class EbuildMetadataPhase(SubProcess):
                fd_pipes[self._metadata_fd] = slave_fd
 
                self._raw_metadata = []
-               files.ebuild = os.fdopen(master_fd, 'r')
+               files.ebuild = os.fdopen(master_fd, 'rb')
                self._reg_id = self.scheduler.register(files.ebuild.fileno(),
                        self._registered_events, self._output_handler)
                self._registered = True
@@ -118,8 +123,8 @@ class EbuildMetadataPhase(SubProcess):
        def _set_returncode(self, wait_retval):
                SubProcess._set_returncode(self, wait_retval)
                if self.returncode == os.EX_OK:
-                       metadata_lines = u''.join(unicode(chunk,
-                               encoding='utf_8', errors='replace')
+                       metadata_lines = ''.join(unicode(chunk,
+                               encoding=_encodings['repo.content'], errors='replace')
                                for chunk in self._raw_metadata).splitlines()
                        if len(portage.auxdbkeys) != len(metadata_lines):
                                # Don't trust bash's returncode if the