Ignore LC_CTYPE if set to "UTF-8"
LC_CTYPE is set to "UTF-8" on some macOS systems, which is POSIX-compliant in a strict sense, but breaks the usual assumption that a locale name has the form "ll_LL.encoding". https://unix.stackexchange.com/questions/503110/valid-values-for-lc-ctype Previously, this would cause the warning Fontconfig warning: ignoring UTF-8: not a valid region tag Now, we just skip this variable if set to "UTF-8", since that value doesn't give any language information, and move on to try LANG.
This commit is contained in:
parent
e2e3c10de7
commit
6c2b709b32
|
@ -62,7 +62,17 @@ retry:
|
||||||
if (!langs || !langs[0])
|
if (!langs || !langs[0])
|
||||||
langs = getenv ("LC_ALL");
|
langs = getenv ("LC_ALL");
|
||||||
if (!langs || !langs[0])
|
if (!langs || !langs[0])
|
||||||
langs = getenv ("LC_CTYPE");
|
{
|
||||||
|
langs = getenv ("LC_CTYPE");
|
||||||
|
// On some macOS systems, LC_CTYPE is set to "UTF-8", which doesn't
|
||||||
|
// give any languge information. In this case, ignore LC_CTYPE and
|
||||||
|
// continue the search with LANG.
|
||||||
|
if (langs && (FcStrCmpIgnoreCase((const FcChar8 *) langs,
|
||||||
|
(const FcChar8 *)"UTF-8") == 0))
|
||||||
|
{
|
||||||
|
langs = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!langs || !langs[0])
|
if (!langs || !langs[0])
|
||||||
langs = getenv ("LANG");
|
langs = getenv ("LANG");
|
||||||
if (langs && langs[0])
|
if (langs && langs[0])
|
||||||
|
|
Loading…
Reference in New Issue