summaryrefslogtreecommitdiff
path: root/data/patches/gnuzilla-bug-1095298.patch
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);