From c53137420b0a64da9add50e66a43b7bec21343b9 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 4 Jul 2009 19:25:42 +0000 Subject: Make getconfig() use codecs.option() for py3k compatible unicode handling. svn path=/main/trunk/; revision=13780 --- pym/portage/util.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'pym') diff --git a/pym/portage/util.py b/pym/portage/util.py index d57b1bc35..1da4b4ba2 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -12,6 +12,7 @@ __all__ = ['apply_permissions', 'apply_recursive_permissions', 'unique_array', 'varexpand', 'write_atomic', 'writedict', 'writemsg', 'writemsg_level', 'writemsg_stdout'] +import codecs import os import errno import logging @@ -366,7 +367,10 @@ def getconfig(mycfg, tolerant=0, allow_sourcing=False, expand=True): # Workaround for avoiding a silent error in shlex that # is triggered by a source statement at the end of the file without a # trailing newline after the source statement - f = StringIO("\n".join(open(mycfg, 'r').readlines()) + "\n") + content = codecs.open(mycfg, mode='r', errors='replace').read() + if content[-1] != u'\n': + content += u'\n' + f = StringIO(content) except IOError, e: if e.errno == PermissionDenied.errno: raise PermissionDenied(mycfg) -- cgit v1.2.3-1-g7c22