port LinkageMap encoding fix to LinkageMapMachO
authorFabian Groffen <grobian@gentoo.org>
Mon, 24 Aug 2009 09:49:02 +0000 (09:49 -0000)
committerFabian Groffen <grobian@gentoo.org>
Mon, 24 Aug 2009 09:49:02 +0000 (09:49 -0000)
svn path=/main/branches/prefix/; revision=14147

pym/portage/dbapi/vartree.py

index 9188970b47abdf5dabca5057467fb25ec0d33109..47c48a99fad99fb6923c04f229e2fdb0b4a6dc04 100644 (file)
@@ -837,6 +837,24 @@ class LinkageMapMachO(object):
                                2. realpath of object if object does not exist.
 
                        """
+
+                       os = _os_merge
+
+                       try:
+                               _unicode_encode(obj,
+                                       encoding=_encodings['merge'], errors='strict')
+                       except UnicodeEncodeError:
+                               # The package appears to have been merged with a 
+                               # different value of sys.getfilesystemencoding(),
+                               # so fall back to utf_8 if appropriate.
+                               try:
+                                       _unicode_encode(obj,
+                                               encoding=_encodings['fs'], errors='strict')
+                               except UnicodeEncodeError:
+                                       pass
+                               else:
+                                       os = portage.os
+
                        abs_path = os.path.join(root, obj.lstrip(os.path.sep))
                        try:
                                object_stat = os.stat(abs_path)