Patchwork [2,of,2] compat: back out a25343d16ebe (initialize LC_CTYPE locale on all Python ...)

login
register
mail settings
Submitter Manuel Jacob
Date June 28, 2020, 3:54 p.m.
Message ID <717366b883b337f45611.1593359673@tmp>
Download mbox | patch
Permalink /patch/46588/
State Accepted
Headers show

Comments

Manuel Jacob - June 28, 2020, 3:54 p.m.
# HG changeset patch
# User Manuel Jacob <me@manueljacob.de>
# Date 1593359549 -7200
#      Sun Jun 28 17:52:29 2020 +0200
# Node ID 717366b883b337f456113dc815eaa0ec17f7f990
# Parent  b7e0d1cf9aa1d122075eb9100702aa20686fa42b
compat: back out a25343d16ebe (initialize LC_CTYPE locale on all Python ...)

As Yuya Nishihara pointed out, setting LC_CTYPE changes the behavior of some
str methods on Python 2.

Patch

diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py
--- a/mercurial/pycompat.py
+++ b/mercurial/pycompat.py
@@ -13,7 +13,6 @@ 
 import getopt
 import inspect
 import json
-import locale
 import os
 import shlex
 import sys
@@ -94,26 +93,6 @@ 
     return _rapply(f, xs)
 
 
-# Passing the '' locale means that the locale should be set according to the
-# user settings (environment variables).
-# Python sometimes avoids setting the global locale settings. When interfacing
-# with C code (e.g. the curses module or the Subversion bindings), the global
-# locale settings must be initialized correctly. Python 2 does not initialize
-# the global locale settings on interpreter startup. Python 3 sometimes
-# initializes LC_CTYPE, but not consistently at least on Windows. Therefore we
-# explicitly initialize it to get consistent behavior if it's not already
-# initialized. Since CPython commit 177d921c8c03d30daa32994362023f777624b10d,
-# LC_CTYPE is always initialized. If we require Python 3.8+, we should re-check
-# if we can remove this code.
-if locale.setlocale(locale.LC_CTYPE, None) == 'C':
-    try:
-        locale.setlocale(locale.LC_CTYPE, '')
-    except locale.Error:
-        # The likely case is that the locale from the environment variables is
-        # unknown.
-        pass
-
-
 if ispy3:
     import builtins
     import codecs