Convert scanmacho/readpecoff output to unicode inside LinkageMapXXXXXX.rebuild().
authorFabian Groffen <grobian@gentoo.org>
Fri, 14 Aug 2009 20:19:16 +0000 (20:19 -0000)
committerFabian Groffen <grobian@gentoo.org>
Fri, 14 Aug 2009 20:19:16 +0000 (20:19 -0000)
svn path=/main/branches/prefix/; revision=14036

pym/portage/dbapi/vartree.py

index d6d6f878fd150a81d9de65a9516e0495d5ee6661..18a9533f0497a9dbb466c5ed02ca5527cdc7947f 100644 (file)
@@ -856,6 +856,8 @@ class LinkageMapMachO(object):
                                raise CommandNotFound(args[0])
                        else:
                                for l in proc.stdout:
+                                       if not isinstance(l, unicode):
+                                               l = unicode(l, encoding='utf_8', errors='replace')
                                        l = l.rstrip("\n")
                                        if not l:
                                                continue
@@ -1323,7 +1325,7 @@ class LinkageMapPeCoff(LinkageMap):
                if self._dbapi.plib_registry and self._dbapi.plib_registry.getPreservedLibs():
                        args = ["readpecoff", self._dbapi.settings.get('CHOST')]
                        for items in self._dbapi.plib_registry.getPreservedLibs().values():
-                               args.extend(os.path.join(root, x.lstrip("." + os.sep)) \
+                               args.extend(os.path.join(root, x.lstrip("." + os.path.sep)) \
                                        for x in items)
                        try:
                                proc = subprocess.Popen(args, stdout=subprocess.PIPE)
@@ -1333,6 +1335,8 @@ class LinkageMapPeCoff(LinkageMap):
                                raise CommandNotFound(args[0])
                        else:
                                for l in proc.stdout:
+                                       if not isinstance(l, unicode):
+                                               l = unicode(l, encoding='utf_8', errors='replace')
                                        l = l.lstrip().rstrip()
                                        if not l:
                                                continue