summaryrefslogtreecommitdiffstats
path: root/pym/portage/xpak.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-09-21 22:02:09 +0000
committerZac Medico <zmedico@gentoo.org>2009-09-21 22:02:09 +0000
commit0600116354870de267eb0d48ecd01f12b9d58659 (patch)
tree2178a4c16e14744d2a2d82978b7c1d9d9f84b825 /pym/portage/xpak.py
parent7770a56f19e51eb9f74cbd4efe472fcf126571e9 (diff)
downloadportage-0600116354870de267eb0d48ecd01f12b9d58659.tar.gz
portage-0600116354870de267eb0d48ecd01f12b9d58659.tar.bz2
portage-0600116354870de267eb0d48ecd01f12b9d58659.zip
Encode/decode names from the xpak index where appropriate.
svn path=/main/trunk/; revision=14367
Diffstat (limited to 'pym/portage/xpak.py')
-rw-r--r--pym/portage/xpak.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/pym/portage/xpak.py b/pym/portage/xpak.py
index 8838891ca..b753f2490 100644
--- a/pym/portage/xpak.py
+++ b/pym/portage/xpak.py
@@ -209,6 +209,8 @@ def getindex_mem(myindex):
def searchindex(myindex,myitem):
"""(index,item) -- Finds the offset and length of the file 'item' in the
datasegment via the index 'index' provided."""
+ myitem = _unicode_encode(myitem,
+ encoding=_encodings['repo.content'], errors='backslashreplace')
mylen=len(myitem)
myindexlen=len(myindex)
startpos=0
@@ -416,6 +418,8 @@ class tbz2(object):
datapos=decodeint(self.index[startpos+4+namelen:startpos+8+namelen]);
datalen=decodeint(self.index[startpos+8+namelen:startpos+12+namelen]);
myname=self.index[startpos+4:startpos+4+namelen]
+ myname = _unicode_decode(myname,
+ encoding=_encodings['repo.content'], errors='replace')
dirname=os.path.dirname(myname)
if dirname:
if not os.path.exists(dirname):