diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-08-06 05:35:14 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-08-06 05:35:14 +0000 |
commit | c7df44e774a0c1400b4c91123146fa4396644f91 (patch) | |
tree | 2e0ebcb622e89812a6fa28100b761478d4abf62f /pym/portage/cache | |
parent | b6eddf7f5a4cb032d217f7ef0b6da028d3f230bc (diff) | |
download | portage-c7df44e774a0c1400b4c91123146fa4396644f91.tar.gz portage-c7df44e774a0c1400b4c91123146fa4396644f91.tar.bz2 portage-c7df44e774a0c1400b4c91123146fa4396644f91.zip |
Do not pass unicode strings into os.walk calls, since it can cause
internal os.path.join calls to raise UnicodeDecodeError.
svn path=/main/trunk/; revision=13926
Diffstat (limited to 'pym/portage/cache')
-rw-r--r-- | pym/portage/cache/ebuild_xattr.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pym/portage/cache/ebuild_xattr.py b/pym/portage/cache/ebuild_xattr.py index 83ed8a783..98e848651 100644 --- a/pym/portage/cache/ebuild_xattr.py +++ b/pym/portage/cache/ebuild_xattr.py @@ -153,7 +153,14 @@ class database(fs_template.FsBased): return os.path.exists(self.__get_path(cpv)) def __iter__(self): - for root,dirs,files in os.walk(self.portdir): + + portdir = self.portdir + if isinstance(portdir, unicode): + # Avoid UnicodeDecodeError raised from + # os.path.join when called by os.walk. + portdir = portdir.encode('utf_8', 'replace') + + for root, dirs, files in os.walk(portdir): for file in files: if file[-7:] == '.ebuild': cat = os.path.basename(os.path.dirname(root)) |