[tbb-commits] [tor-browser/tor-browser-38.3.0esr-5.0-2] fixup! Bug #5926: Allow JS locale to be set to English/C.
gk at torproject.org
gk at torproject.org
Wed Oct 28 13:51:48 UTC 2015
commit 6d36430a07b75db21fb4007f28cceb98adc23f35
Author: Arthur Edelstein <arthuredelstein at gmail.com>
Date: Thu Oct 15 22:10:48 2015 +0000
fixup! Bug #5926: Allow JS locale to be set to English/C.
Fixes #17329: Use the UTF-8 version of the "C" locale to
ensure that non-ASCII characters can be typed.
---
xpcom/build/XPCOMInit.cpp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/xpcom/build/XPCOMInit.cpp b/xpcom/build/XPCOMInit.cpp
index 292652d..ec1f6c9 100644
--- a/xpcom/build/XPCOMInit.cpp
+++ b/xpcom/build/XPCOMInit.cpp
@@ -520,7 +520,15 @@ void UseUSEnglishLocalePrefChangedCallback(const char* /* pref */, void* /* clos
// Read the pref to see if we will use US English locale.
bool useUSEnglishLocale = mozilla::Preferences::GetBool(USE_US_ENGLISH_LOCALE_PREF, false);
// Set the application-wide C-locale. Needed for Date.toLocaleFormat().
- setlocale(LC_ALL, useUSEnglishLocale ? "C" : sSystemLocale);
+ if (useUSEnglishLocale) {
+ // Set the locale to "C.UTF-8" if possible, to avoid interfering with non-ASCII
+ // keyboard input on some Linux desktops.
+ // Otherwise fall back to the "C" locale, which is available on all platforms.
+ // See https://bugs.torproject.org/17329
+ setlocale(LC_ALL, "C.UTF-8") || setlocale(LC_ALL, "C");
+ } else {
+ setlocale(LC_ALL, sSystemLocale);
+ }
// Now override the JavaScript Runtime Locale that is used by the Intl API
// as well as Date.toLocaleString, Number.toLocaleString, and String.localeCompare.
JS_SetDefaultLocale(rt, useUSEnglishLocale ? "en-US" : sJSLocale);
More information about the tbb-commits
mailing list