blob: aa075a2039f620378ca2f27d33ecd182d569c470 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
--- a/intl/locale/src/nsLocaleService.cpp
+++ a/intl/locale/src/nsLocaleService.cpp
@@ -135,17 +135,25 @@ nsLocaleService::nsLocaleService(void)
for( i = 0; i < LocaleListLength; i++ ) {
nsresult result;
// setlocale( , "") evaluates LC_* and LANG
char* lc_temp = setlocale(posix_locale_category[i], "");
CopyASCIItoUTF16(LocaleList[i], category);
category_platform = category;
category_platform.AppendLiteral("##PLATFORM");
- if (lc_temp != nullptr) {
+
+ bool lc_temp_valid = lc_temp != nullptr;
+
+#if defined(MOZ_WIDGET_ANDROID)
+ // Treat the "C" env as nothing useful. See Bug 1095298.
+ lc_temp_valid = lc_temp_valid && strcmp(lc_temp, "C") != 0;
+#endif
+
+ if (lc_temp_valid) {
result = nsPosixLocale::GetXPLocale(lc_temp, xpLocale);
CopyASCIItoUTF16(lc_temp, platformLocale);
} else {
if ( lang == nullptr ) {
platformLocale.AssignLiteral("en_US");
result = nsPosixLocale::GetXPLocale("en-US", xpLocale);
} else {
CopyASCIItoUTF16(lang, platformLocale);
|