diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-08-23 07:40:57 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-08-23 07:40:57 +0000 |
commit | fee6105d465c00a303a6dfb713fd5d008d6be79f (patch) | |
tree | 61246097b504f46b6d1cb2c0edf76e8a34750dd4 | |
parent | e62514e472185cfcc764f37b4b0cf757d062b663 (diff) | |
download | portage-fee6105d465c00a303a6dfb713fd5d008d6be79f.tar.gz portage-fee6105d465c00a303a6dfb713fd5d008d6be79f.tar.bz2 portage-fee6105d465c00a303a6dfb713fd5d008d6be79f.zip |
Bug #282306 - Inside LinkageMap._ObjectKey._generate_object_key(), fall back
to utf_8 encoding if a path cannot be encoded under the user's chosen
encoding. This should complete the fix for the traceback shown in bug #282115,
comment #6.
svn path=/main/trunk/; revision=14131
-rw-r--r-- | pym/portage/dbapi/vartree.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index e6ed16498..5a2c3d091 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -249,6 +249,21 @@ class LinkageMap(object): 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.sep)) try: object_stat = os.stat(abs_path) |