diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2012-07-20 10:54:25 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-31 11:11:48 +0200 |
commit | e41129c8593e58e800846e9c6219a79a7741cb2f (patch) | |
tree | 41e2e136fdc52b9514583532f811aa83743c8544 /src/corelib/codecs | |
parent | 5af9ecafd9c14f39bec5fed3192a266ec9e31ffe (diff) |
Remove encoding detection according to LANG
This code is left over from the 90's, and should not
get used anymore. In all relevant cases we will use UTF-8
or iconv nowadays.
Change-Id: Ie3776f671de33f782fa77f6359bf6e105bd9c1b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/codecs')
-rw-r--r-- | src/corelib/codecs/qtextcodec.cpp | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp index 0aa7a3b1a8..2522cefeaa 100644 --- a/src/corelib/codecs/qtextcodec.cpp +++ b/src/corelib/codecs/qtextcodec.cpp @@ -127,109 +127,6 @@ static bool nameMatch(const QByteArray &name, const QByteArray &test) } #if !defined(Q_OS_WIN32) && !defined(Q_OS_WINCE) - -/* locale names mostly copied from XFree86 */ -static const char * const iso8859_2locales[] = { - "croatian", "cs", "cs_CS", "cs_CZ","cz", "cz_CZ", "czech", "hr", - "hr_HR", "hu", "hu_HU", "hungarian", "pl", "pl_PL", "polish", "ro", - "ro_RO", "rumanian", "serbocroatian", "sh", "sh_SP", "sh_YU", "sk", - "sk_SK", "sl", "sl_CS", "sl_SI", "slovak", "slovene", "sr_SP", 0 }; - -static const char * const iso8859_3locales[] = { - "eo", 0 }; - -static const char * const iso8859_4locales[] = { - "ee", "ee_EE", 0 }; - -static const char * const iso8859_5locales[] = { - "mk", "mk_MK", "sp", "sp_YU", 0 }; - -static const char * const cp_1251locales[] = { - "be", "be_BY", "bg", "bg_BG", "bulgarian", 0 }; - -static const char * const pt_154locales[] = { - "ba_RU", "ky", "ky_KG", "kk", "kk_KZ", 0 }; - -static const char * const iso8859_6locales[] = { - "ar_AA", "ar_SA", "arabic", 0 }; - -static const char * const iso8859_7locales[] = { - "el", "el_GR", "greek", 0 }; - -static const char * const iso8859_8locales[] = { - "hebrew", "he", "he_IL", "iw", "iw_IL", 0 }; - -static const char * const iso8859_9locales[] = { - "tr", "tr_TR", "turkish", 0 }; - -static const char * const iso8859_13locales[] = { - "lt", "lt_LT", "lv", "lv_LV", 0 }; - -static const char * const iso8859_15locales[] = { - "et", "et_EE", - // Euro countries - "br_FR", "ca_ES", "de", "de_AT", "de_BE", "de_DE", "de_LU", "en_IE", - "es", "es_ES", "eu_ES", "fi", "fi_FI", "finnish", "fr", "fr_FR", - "fr_BE", "fr_LU", "french", "ga_IE", "gl_ES", "it", "it_IT", "oc_FR", - "nl", "nl_BE", "nl_NL", "pt", "pt_PT", "sv_FI", "wa_BE", - 0 }; - -static const char * const koi8_ulocales[] = { - "uk", "uk_UA", "ru_UA", "ukrainian", 0 }; - -static const char * const tis_620locales[] = { - "th", "th_TH", "thai", 0 }; - -// static const char * const tcvnlocales[] = { -// "vi", "vi_VN", 0 }; - -static bool try_locale_list(const char * const locale[], const QByteArray &lang) -{ - int i; - for(i=0; locale[i] && lang != locale[i]; i++) - ; - return locale[i] != 0; -} - -// For the probably_koi8_locales we have to look. the standard says -// these are 8859-5, but almost all Russian users use KOI8-R and -// incorrectly set $LANG to ru_RU. We'll check tolower() to see what -// it thinks ru_RU means. - -// If you read the history, it seems that many Russians blame ISO and -// Perestroika for the confusion. -// -// The real bug is that some programs break if the user specifies -// ru_RU.KOI8-R. - -static const char * const probably_koi8_rlocales[] = { - "ru", "ru_SU", "ru_RU", "russian", 0 }; - -static QTextCodec * ru_RU_hack(const char * i) -{ - QTextCodec * ru_RU_codec = 0; - - QByteArray origlocale(setlocale(LC_CTYPE, i)); - // unicode koi8r latin5 name - // 0x044E 0xC0 0xEE CYRILLIC SMALL LETTER YU - // 0x042E 0xE0 0xCE CYRILLIC CAPITAL LETTER YU - int latin5 = tolower(0xCE); - int koi8r = tolower(0xE0); - if (koi8r == 0xC0 && latin5 != 0xEE) { - ru_RU_codec = QTextCodec::codecForName("KOI8-R"); - } else if (koi8r != 0xC0 && latin5 == 0xEE) { - ru_RU_codec = QTextCodec::codecForName("ISO 8859-5"); - } else { - // something else again... let's assume... *throws dice* - ru_RU_codec = QTextCodec::codecForName("KOI8-R"); - qWarning("QTextCodec: Using KOI8-R, probe failed (%02x %02x %s)", - koi8r, latin5, i); - } - setlocale(LC_CTYPE, origlocale.constData()); - - return ru_RU_codec; -} - static QTextCodec *checkForCodec(const QByteArray &name) { QTextCodec *c = QTextCodec::codecForName(name); if (!c) { @@ -337,45 +234,6 @@ static QTextCodec *setupLocaleMapper() // 5. "@euro" if ((!globalData->codecForLocale && ctype.contains("@euro")) || lang.contains("@euro")) globalData->codecForLocale = checkForCodec("ISO 8859-15"); - - // 6. guess locale from ctype unless ctype is "C" - // 7. guess locale from lang - const QByteArray &try_by_name = (!ctype.isEmpty() && ctype != "C") ? lang : ctype; - - // Now do the guessing. - if (!lang.isEmpty() && !globalData->codecForLocale && !try_by_name.isEmpty()) { - if (try_locale_list(iso8859_15locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-15"); - else if (try_locale_list(iso8859_2locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-2"); - else if (try_locale_list(iso8859_3locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-3"); - else if (try_locale_list(iso8859_4locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-4"); - else if (try_locale_list(iso8859_5locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-5"); - else if (try_locale_list(iso8859_6locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-6"); - else if (try_locale_list(iso8859_7locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-7"); - else if (try_locale_list(iso8859_8locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-8-I"); - else if (try_locale_list(iso8859_9locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-9"); - else if (try_locale_list(iso8859_13locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-13"); - else if (try_locale_list(tis_620locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-11"); - else if (try_locale_list(koi8_ulocales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("KOI8-U"); - else if (try_locale_list(cp_1251locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("CP 1251"); - else if (try_locale_list(pt_154locales, lang)) - globalData->codecForLocale = QTextCodec::codecForName("PT 154"); - else if (try_locale_list(probably_koi8_rlocales, lang)) - globalData->codecForLocale = ru_RU_hack(lang.constData()); - } - } // If everything failed, we default to 8859-1 |