If sys.getdefaultencoding() returns None (this can happen if python is built
authorZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 07:42:31 +0000 (07:42 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 19 Aug 2009 07:42:31 +0000 (07:42 -0000)
with USE=build, in stage 1), fall back to _encodings['merge'] = 'ascii'.

svn path=/main/trunk/; revision=14102

pym/portage/__init__.py

index 9cb3af2ae7bcc8c1088542ec88ff95eb6e64d14c..186417e8d07f64488b295e14bd554df5eed72dac 100644 (file)
@@ -127,6 +127,10 @@ _encodings = {
        'repo.content'           : 'utf_8',
 }
 
+# This can happen if python is built with USE=build (stage 1).
+if _encodings['merge'] is None:
+       _encodings['merge'] = 'ascii'
+
 # Deprecated attributes. Instead use _encodings directly.
 _content_encoding = _encodings['content']
 _fs_encoding = _encodings['fs']
@@ -352,7 +356,7 @@ def _ensure_default_encoding():
 
        default_fallback = 'utf_8'
        default_encoding = sys.getdefaultencoding().lower().replace('-', '_')
-       filesystem_encoding = sys.getfilesystemencoding().lower().replace('-', '_')
+       filesystem_encoding = encodings['merge'].lower().replace('-', '_')
        required_encodings = set(['ascii', 'utf_8'])
        required_encodings.add(default_encoding)
        required_encodings.add(filesystem_encoding)