changeset 7750:f2900ebaac0d

locale: fix environment checks: LC_ALL has precedence over LC_CTYPE 'man 7 locale' describes following precedence: If the second argument to setlocale(3) is an empty string, "", for the default locale, it is determined using the following steps: 1. If there is a non-null environment variable LC_ALL, the value of LC_ALL is used. 2. If an environment variable with the same name as one of the categories above exists and is non-null, its value is used for that category. 3. If there is a non-null environment variable LANG, the value of LANG is used. So, if LC_ALL is set, it is used regardless of LC_CTYPE or LANG. Hence, when suggesting users what to change when their locale is invalid, we should also first check LC_ALL instead of LC_CTYPE.
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Mon, 24 Jun 2019 19:42:02 +0200
parents a512e843cd31
children d4bcbe1b06f4
files kallithea/config/app_cfg.py
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/config/app_cfg.py	Wed May 01 02:50:55 2019 +0200
+++ b/kallithea/config/app_cfg.py	Mon Jun 24 19:42:02 2019 +0200
@@ -127,7 +127,7 @@
         u'\xe9'.encode(sys.getfilesystemencoding()) # Test using é (&eacute;)
     except UnicodeEncodeError:
         log.error("Cannot encode Unicode paths to file system encoding %r", sys.getfilesystemencoding())
-        for var in ['LC_CTYPE', 'LC_ALL', 'LANG']:
+        for var in ['LC_ALL', 'LC_CTYPE', 'LANG']:
             if var in os.environ:
                 val = os.environ[var]
                 log.error("Note: Environment variable %s is %r - perhaps change it to some other value from 'locale -a', like 'C.UTF-8' or 'en_US.UTF-8'", var, val)