From: Zac Medico Date: Tue, 4 Aug 2009 18:45:48 +0000 (-0000) Subject: Open CONTENTS in text mode (to avoid UnicodeEncodeError). Thanks to Markos X-Git-Tag: v2.2_rc36~15 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=141eff421a45892315b2b871828db3899246872e;p=portage.git Open CONTENTS in text mode (to avoid UnicodeEncodeError). Thanks to Markos Chandras for reporting. svn path=/main/trunk/; revision=13902 --- diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 88ec7b3c7..e759a9b15 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -37,6 +37,7 @@ from portage import listdir, dep_expand, digraph, flatten, key_expand, \ from portage.cache.mappings import slot_dict_class +import codecs import os, re, shutil, stat, errno, copy, subprocess import logging import shlex @@ -1864,7 +1865,8 @@ class dblink(object): return self.contentscache pkgfiles = {} try: - myc = open(contents_file,"r") + myc = codecs.open(contents_file, mode='r', + encoding='utf_8', errors='replace') except EnvironmentError, e: if e.errno != errno.ENOENT: raise @@ -3432,7 +3434,8 @@ class dblink(object): lcfile.close() # open CONTENTS file (possibly overwriting old one) for recording - outfile = open(os.path.join(self.dbtmpdir, "CONTENTS"),"w") + outfile = codecs.open(os.path.join(self.dbtmpdir, 'CONTENTS'), + mode='w', encoding='utf_8', errors='replace') self.updateprotect()