1 |
Author: zmedico |
2 |
Date: 2009-08-04 21:12:22 +0000 (Tue, 04 Aug 2009) |
3 |
New Revision: 13907 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/portage/dbapi/vartree.py |
7 |
Log: |
8 |
Always return unicode from vardbapi.aux_get(). |
9 |
|
10 |
|
11 |
Modified: main/trunk/pym/portage/dbapi/vartree.py |
12 |
=================================================================== |
13 |
--- main/trunk/pym/portage/dbapi/vartree.py 2009-08-04 20:00:20 UTC (rev 13906) |
14 |
+++ main/trunk/pym/portage/dbapi/vartree.py 2009-08-04 21:12:22 UTC (rev 13907) |
15 |
@@ -1173,6 +1173,12 @@ |
16 |
cache_mtime, metadata = pkg_data |
17 |
cache_valid = cache_mtime == mydir_mtime |
18 |
if cache_valid: |
19 |
+ for k, v in metadata.iteritems(): |
20 |
+ if not isinstance(v, unicode): |
21 |
+ # Migrate old metadata to unicode. |
22 |
+ metadata[k] = unicode(v, |
23 |
+ encoding='utf_8', errors='replace') |
24 |
+ |
25 |
mydata.update(metadata) |
26 |
pull_me.difference_update(mydata) |
27 |
|
28 |
@@ -1193,7 +1199,7 @@ |
29 |
if not mydata['SLOT']: |
30 |
# Empty slot triggers InvalidAtom exceptions when generating slot |
31 |
# atoms for packages, so translate it to '0' here. |
32 |
- mydata['SLOT'] = '0' |
33 |
+ mydata['SLOT'] = u'0' |
34 |
return [mydata[x] for x in wants] |
35 |
|
36 |
def _aux_get(self, mycpv, wants, st=None): |
37 |
@@ -1216,7 +1222,8 @@ |
38 |
results.append(long(st.st_mtime)) |
39 |
continue |
40 |
try: |
41 |
- myf = open(os.path.join(mydir, x), "r") |
42 |
+ myf = codecs.open(os.path.join(mydir, x), |
43 |
+ mode='r', encoding='utf_8', errors='replace') |
44 |
try: |
45 |
myd = myf.read() |
46 |
finally: |