##// END OF EJS Templates
encoding: remove workaround for locale.getpreferredencoding()...
Gregory Szorc -
r32276:1a3a08b5 default
parent child Browse files
Show More
@@ -60,34 +60,9 b' else:'
60 60 environ = dict((k.encode(u'utf-8'), v.encode(u'utf-8'))
61 61 for k, v in os.environ.items()) # re-exports
62 62
63 def _getpreferredencoding():
64 '''
65 On darwin, getpreferredencoding ignores the locale environment and
66 always returns mac-roman. http://bugs.python.org/issue6202 fixes this
67 for Python 2.7 and up. This is the same corrected code for earlier
68 Python versions.
69
70 However, we can't use a version check for this method, as some distributions
71 patch Python to fix this. Instead, we use it as a 'fixer' for the mac-roman
72 encoding, as it is unlikely that this encoding is the actually expected.
73 '''
74 try:
75 locale.CODESET
76 except AttributeError:
77 # Fall back to parsing environment variables :-(
78 return locale.getdefaultlocale()[1]
79
80 oldloc = locale.setlocale(locale.LC_CTYPE)
81 locale.setlocale(locale.LC_CTYPE, "")
82 result = locale.nl_langinfo(locale.CODESET)
83 locale.setlocale(locale.LC_CTYPE, oldloc)
84
85 return result
86
87 63 _encodingfixers = {
88 64 '646': lambda: 'ascii',
89 65 'ANSI_X3.4-1968': lambda: 'ascii',
90 'mac-roman': _getpreferredencoding
91 66 }
92 67
93 68 try:
General Comments 0
You need to be logged in to leave comments. Login now