Use portage.os and _encodings where appropriate.
authorZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 06:21:40 +0000 (06:21 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 06:21:40 +0000 (06:21 -0000)
svn path=/main/trunk/; revision=14097

pym/repoman/utilities.py

index 9ea5ff46705aeb77904a4bab137866d1700ce6ba..cf32399d3d88eefee7b00b2798149f8cba968110 100644 (file)
@@ -18,16 +18,19 @@ __all__ = [
        "parse_metadata_use"
 ]
 
+import codecs
 import commands
 import errno
 import itertools
 import logging
-import os
 import sys
 
 from xml.dom import minidom
 from xml.dom import NotFoundErr
 from xml.parsers.expat import ExpatError
+from portage import os
+from portage import _encodings
+from portage import _unicode_encode
 from portage import output
 from portage.output import red, green
 from portage.process import find_binary
@@ -282,7 +285,10 @@ def get_commit_message_with_editor(editor, message=None):
                if not (os.WIFEXITED(retval) and os.WEXITSTATUS(retval) == os.EX_OK):
                        return None
                try:
-                       mylines = open(filename).readlines()
+                       mylines = codecs.open(_unicode_encode(filename,
+                               encoding=_encodings['fs'], errors='strict'),
+                               mode='r', encoding=_encodings['content'], errors='replace'
+                               ).readlines()
                except OSError, e:
                        if e.errno != errno.ENOENT:
                                raise