Show More
@@ -13,6 +13,7 b' from __future__ import absolute_import' | |||
|
13 | 13 | import getopt |
|
14 | 14 | import inspect |
|
15 | 15 | import json |
|
16 | import locale | |
|
16 | 17 | import os |
|
17 | 18 | import shlex |
|
18 | 19 | import sys |
@@ -93,6 +94,26 b' def rapply(f, xs):' | |||
|
93 | 94 | return _rapply(f, xs) |
|
94 | 95 | |
|
95 | 96 | |
|
97 | # Passing the '' locale means that the locale should be set according to the | |
|
98 | # user settings (environment variables). | |
|
99 | # Python sometimes avoids setting the global locale settings. When interfacing | |
|
100 | # with C code (e.g. the curses module or the Subversion bindings), the global | |
|
101 | # locale settings must be initialized correctly. Python 2 does not initialize | |
|
102 | # the global locale settings on interpreter startup. Python 3 sometimes | |
|
103 | # initializes LC_CTYPE, but not consistently at least on Windows. Therefore we | |
|
104 | # explicitly initialize it to get consistent behavior if it's not already | |
|
105 | # initialized. Since CPython commit 177d921c8c03d30daa32994362023f777624b10d, | |
|
106 | # LC_CTYPE is always initialized. If we require Python 3.8+, we should re-check | |
|
107 | # if we can remove this code. | |
|
108 | if locale.setlocale(locale.LC_CTYPE, None) == 'C': | |
|
109 | try: | |
|
110 | locale.setlocale(locale.LC_CTYPE, '') | |
|
111 | except locale.Error: | |
|
112 | # The likely case is that the locale from the environment variables is | |
|
113 | # unknown. | |
|
114 | pass | |
|
115 | ||
|
116 | ||
|
96 | 117 | if ispy3: |
|
97 | 118 | import builtins |
|
98 | 119 | import codecs |
General Comments 0
You need to be logged in to leave comments.
Login now