From 5d2f7a9d9224d4df1655cd1d6fd72646734b0272 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 9 Sep 2006 10:04:42 -0700 Subject: [PATCH] Accept locale environment variables that do not contain territory. Locale environment variables (LC_ALL, LC_CTYPE, LANG) must contain language, and may contain territory and encoding. Don't accidentally require territory as that will cause fontconfig to fall back to 'en'. --- src/fcdefault.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/fcdefault.c b/src/fcdefault.c index ddf4237..4e5823b 100644 --- a/src/fcdefault.c +++ b/src/fcdefault.c @@ -91,6 +91,22 @@ FcGetDefaultLang (void) lang_local[lang_len + 1 + territory_len] = '\0'; } } + else + { + after = strchr (ctype, '.'); + if (!after) + { + after = strchr (ctype, '@'); + if (!after) + after = ctype + strlen (ctype); + } + lang_len = after - ctype; + if (lang_len + 1 <= (int) sizeof (lang_local)) + { + strncpy (lang_local, ctype, lang_len); + lang_local[lang_len] = '\0'; + } + } } /* set default lang to en */ -- 2.39.2