[jhbuild] Clean up getting the default encoding



commit 854bf2f85532082934d63914a24861eef5071c8c
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Sat Sep 21 21:03:25 2019 +0200

    Clean up getting the default encoding
    
    darwin defaults to utf-8, even if it fails. Also we shouldn't change
    sys.platform at runtime, who knows what that breaks.

 jhbuild/main.py | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
---
diff --git a/jhbuild/main.py b/jhbuild/main.py
index 35777771..418e397e 100644
--- a/jhbuild/main.py
+++ b/jhbuild/main.py
@@ -23,6 +23,7 @@ import sys, os, errno
 import optparse
 import traceback
 import logging
+import locale
 
 import gettext
 import __builtin__
@@ -36,23 +37,22 @@ from jhbuild.moduleset import warn_local_modulesets
 from jhbuild.utils.compat import text_type
 
 
-if sys.platform == 'darwin':
-    # work around locale.getpreferredencoding() returning an empty string in
-    # Mac OS X, see http://bugzilla.gnome.org/show_bug.cgi?id=534650 and
-    # http://bazaar-vcs.org/DarwinCommandLineArgumentDecoding
-    sys.platform = 'posix'
+def _get_encoding():
     try:
-        import locale
-    finally:
-        sys.platform = 'darwin'
-else:
-    import locale
-
-try:
-    _encoding = locale.getpreferredencoding()
-    assert _encoding
-except (locale.Error, AssertionError):
-    _encoding = 'ascii'
+        encoding = locale.getpreferredencoding()
+    except locale.Error:
+        encoding = ""
+    if not encoding:
+        # work around locale.getpreferredencoding() returning an empty string in
+        # Mac OS X, see http://bugzilla.gnome.org/show_bug.cgi?id=534650
+        if sys.platform == "darwin":
+            encoding = "utf-8"
+        else:
+            encoding = "ascii"
+    return encoding
+
+_encoding = _get_encoding()
+
 
 def uencode(s):
     if isinstance(s, text_type):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]