亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qtextcodec.cpp

?? QT 開發環境里面一個很重要的文件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "qplatformdefs.h"#include "qtextcodec.h"#ifndef QT_NO_TEXTCODEC#include "qlist.h"#include "qfile.h"#ifndef QT_NO_LIBRARY# include "qcoreapplication.h"# include "qtextcodecplugin.h"# include "private/qfactoryloader_p.h"#endif#include "qstringlist.h"#ifdef Q_OS_UNIX#  include "qiconvcodec_p.h"#endif#include "qutfcodec_p.h"#include "qsimplecodec_p.h"#include "qlatincodec_p.h"#ifndef QT_NO_CODECS#  include "qtsciicodec_p.h"#  include "qisciicodec_p.h"#  if defined(QT_NO_ICONV) && !defined(QT_BOOTSTRAPPED)// no iconv(3) support, must build all codecs into the library#    include "../../plugins/codecs/cn/qgb18030codec.h"#    include "../../plugins/codecs/jp/qeucjpcodec.h"#    include "../../plugins/codecs/jp/qjiscodec.h"#    include "../../plugins/codecs/jp/qsjiscodec.h"#    include "../../plugins/codecs/kr/qeuckrcodec.h"#    include "../../plugins/codecs/tw/qbig5codec.h"#  endif // QT_NO_ICONV#  if defined(Q_WS_X11) && !defined(QT_BOOTSTRAPPED)#    include "qfontlaocodec_p.h"#    include "../../plugins/codecs/jp/qfontjpcodec.h"#  endif#endif // QT_NO_CODECS#include "qlocale.h"#include "private/qmutexpool_p.h"#include <stdlib.h>#include <ctype.h>#ifndef Q_OS_TEMP#include <locale.h>#endif#if defined (_XOPEN_UNIX) && !defined(Q_OS_QNX6) && !defined(Q_OS_OSF)#include <langinfo.h>#endif#ifndef QT_NO_TEXTCODECPLUGINQ_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,    (QTextCodecFactoryInterface_iid, QCoreApplication::libraryPaths(), QLatin1String("/codecs")))#endifstatic bool nameMatch(const QByteArray &name, const QByteArray &test){    // if they're the same, return a perfect score    if (qstricmp(name, test) == 0)        return true;    const char *n = name.constData();    const char *h = test.constData();    // if the letters and numbers are the same, we have a match    while (*n != '\0') {        if (isalnum((uchar)*n)) {            for (;;) {                if (*h == '\0')                    return false;                if (isalnum((uchar)*h))                    break;                ++h;            }            if (tolower((uchar)*n) != tolower((uchar)*h))                return false;            ++h;        }        ++n;    }    while (*h && !isalnum((uchar)*h))           ++h;    return (*h == '\0');}static QTextCodec *createForName(const QByteArray &name){#ifndef QT_NO_TEXTCODECPLUGIN    QFactoryLoader *l = loader();    QStringList keys = l->keys();    for (int i = 0; i < keys.size(); ++i) {        if (nameMatch(name, keys.at(i).toLatin1())) {            QString realName = keys.at(i);            if (QTextCodecFactoryInterface *factory                = qobject_cast<QTextCodecFactoryInterface*>(l->instance(realName))) {                return factory->create(realName);            }        }    }#else    Q_UNUSED(name);#endif    return 0;}static QTextCodec *createForMib(int mib){#ifndef QT_NO_TEXTCODECPLUGIN    QString name = QLatin1String("MIB: ") + QString::number(mib);    if (QTextCodecFactoryInterface *factory        = qobject_cast<QTextCodecFactoryInterface*>(loader()->instance(name)))        return factory->create(name);#else    Q_UNUSED(mib);#endif    return 0;}static QList<QTextCodec*> *all = 0;static bool destroying_is_ok = false;static QTextCodec *localeMapper = 0;QTextCodec *QTextCodec::cftr = 0;class QTextCodecCleanup{public:    ~QTextCodecCleanup();};/*    Deletes all the created codecs. This destructor is called just    before exiting to delete any QTextCodec objects that may be lying    around.*/QTextCodecCleanup::~QTextCodecCleanup(){    if (!all)        return;    destroying_is_ok = true;    while (all->size())        delete all->takeFirst();    delete all;    all = 0;    localeMapper = 0;    destroying_is_ok = false;}Q_GLOBAL_STATIC(QTextCodecCleanup, createQTextCodecCleanup)#ifdef Q_OS_WIN32class QWindowsLocalCodec: public QTextCodec{public:    QWindowsLocalCodec();    ~QWindowsLocalCodec();    QString convertToUnicode(const char *, int, ConverterState *) const;    QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;    QByteArray name() const;    int mibEnum() const;};QWindowsLocalCodec::QWindowsLocalCodec(){}QWindowsLocalCodec::~QWindowsLocalCodec(){}QString QWindowsLocalCodec::convertToUnicode(const char *chars, int len, ConverterState * /*state*/) const{    return qt_winMB2QString(chars, len);}QByteArray QWindowsLocalCodec::convertFromUnicode(const QChar *uc, int len, ConverterState *) const{    return qt_winQString2MB(uc, len);}QByteArray QWindowsLocalCodec::name() const{    return "System";}int QWindowsLocalCodec::mibEnum() const{    return 0;}#else/* 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 char * lang){    int i;    for(i=0; locale[i] && *locale[i] && strcmp(locale[i], lang); 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);    return ru_RU_codec;}#endifstatic QTextCodec *checkForCodec(const char *name) {    QTextCodec *c = QTextCodec::codecForName(name);    if (!c) {        const char *at = strchr(name, '@');        if (at) {            QByteArray n(name, at - name);            c = QTextCodec::codecForName(n.data());        }    }    return c;}/* the next two functions are implicitely thread safe,   as they are only called by setup() which uses a mutex.*/static void setupLocaleMapper(){#ifdef Q_OS_WIN32    localeMapper = QTextCodec::codecForName("System");#else#ifndef QT_NO_ICONV    localeMapper = QTextCodec::codecForName("System");#endif#if defined (_XOPEN_UNIX) && !defined(Q_OS_QNX6) && !defined(Q_OS_OSF)    if (!localeMapper) {        char *charset = nl_langinfo (CODESET);        if (charset)            localeMapper = QTextCodec::codecForName(charset);    }#endif    if (!localeMapper) {        // Very poorly defined and followed standards causes lots of        // code to try to get all the cases... This logic is        // duplicated in QIconvCodec, so if you change it here, change        // it there too.        // Try to determine locale codeset from locale name assigned to        // LC_CTYPE category.        // First part is getting that locale name.  First try setlocale() which        // definitely knows it, but since we cannot fully trust it, get ready        // to fall back to environment variables.        char * ctype = qstrdup(setlocale(LC_CTYPE, 0));        // Get the first nonempty value from $LC_ALL, $LC_CTYPE, and $LANG        // environment variables.        char * lang = qstrdup(qgetenv("LC_ALL").constData());        if (!lang || lang[0] == 0 || strcmp(lang, "C") == 0) {            if (lang) delete [] lang;            lang = qstrdup(qgetenv("LC_CTYPE").constData());        }        if (!lang || lang[0] == 0 || strcmp(lang, "C") == 0) {            if (lang) delete [] lang;            lang = qstrdup(qgetenv("LANG").constData());        }        // Now try these in order:        // 1. CODESET from ctype if it contains a .CODESET part (e.g. en_US.ISO8859-15)        // 2. CODESET from lang if it contains a .CODESET part        // 3. ctype (maybe the locale is named "ISO-8859-1" or something)        // 4. locale (ditto)        // 5. check for "@euro"        // 6. guess locale from ctype unless ctype is "C"        // 7. guess locale from lang        // 1. CODESET from ctype if it contains a .CODESET part (e.g. en_US.ISO8859-15)        char * codeset = ctype ? strchr(ctype, '.') : 0;        if (codeset && *codeset == '.')            localeMapper = checkForCodec(codeset + 1);        // 2. CODESET from lang if it contains a .CODESET part        codeset = lang ? strchr(lang, '.') : 0;        if (!localeMapper && codeset && *codeset == '.')            localeMapper = checkForCodec(codeset + 1);        // 3. ctype (maybe the locale is named "ISO-8859-1" or something)        if (!localeMapper && ctype && *ctype != 0 && strcmp (ctype, "C") != 0)            localeMapper = checkForCodec(ctype);        // 4. locale (ditto)        if (!localeMapper && lang && *lang != 0)            localeMapper = checkForCodec(lang);        // 5. "@euro"        if (!localeMapper && ctype && strstr(ctype, "@euro") || lang && strstr(lang, "@euro"))            localeMapper = checkForCodec("ISO 8859-15");        // 6. guess locale from ctype unless ctype is "C"        // 7. guess locale from lang        char * try_by_name = ctype;        if (ctype && *ctype != 0 && strcmp (ctype, "C") != 0)            try_by_name = lang;        // Now do the guessing.        if (lang && *lang && !localeMapper && try_by_name && *try_by_name) {            if (try_locale_list(iso8859_15locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-15");            else if (try_locale_list(iso8859_2locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-2");            else if (try_locale_list(iso8859_3locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-3");            else if (try_locale_list(iso8859_4locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-4");            else if (try_locale_list(iso8859_5locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-5");            else if (try_locale_list(iso8859_6locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-6");            else if (try_locale_list(iso8859_7locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-7");            else if (try_locale_list(iso8859_8locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-8-I");            else if (try_locale_list(iso8859_9locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-9");            else if (try_locale_list(iso8859_13locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-13");            else if (try_locale_list(tis_620locales, lang))                localeMapper = QTextCodec::codecForName("ISO 8859-11");            else if (try_locale_list(koi8_ulocales, lang))                localeMapper = QTextCodec::codecForName("KOI8-U");            else if (try_locale_list(cp_1251locales, lang))                localeMapper = QTextCodec::codecForName("CP 1251");            else if (try_locale_list(pt_154locales, lang))                localeMapper = QTextCodec::codecForName("PT 154");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线看国产日韩| hitomi一区二区三区精品| 欧美视频日韩视频| 亚洲国产成人高清精品| 欧美人体做爰大胆视频| 丝瓜av网站精品一区二区 | 亚洲www啪成人一区二区麻豆| 97精品电影院| 亚洲成人av在线电影| 日韩精品一区二区三区视频在线观看| 精品一区二区三区在线观看国产| 久久久久99精品一区| www.在线欧美| 日韩影院在线观看| 久久奇米777| 色综合久久六月婷婷中文字幕| 亚洲精品成人在线| 日韩一区二区免费视频| 国产盗摄一区二区| 亚洲午夜视频在线观看| 欧美一级在线免费| 成人一区二区三区在线观看| 亚洲欧美韩国综合色| 欧美一区二区三区视频在线| 国产成人精品一区二区三区四区 | 一区二区三区在线免费播放| 91精品国产欧美一区二区| 国产剧情av麻豆香蕉精品| 亚洲欧美日韩综合aⅴ视频| 欧美精品三级在线观看| 国产成人精品影院| 天天综合色天天| 国产欧美久久久精品影院| 欧美伊人久久久久久久久影院 | 777奇米四色成人影色区| 国产iv一区二区三区| 午夜精品一区在线观看| 国产欧美一区二区在线| 欧美美女bb生活片| aaa国产一区| 精品中文av资源站在线观看| 亚洲精品中文字幕乱码三区| 久久中文字幕电影| 在线成人免费视频| 日本丶国产丶欧美色综合| 国产一区二区三区黄视频| 五月婷婷久久综合| 中文字幕五月欧美| 国产偷国产偷亚洲高清人白洁| 欧美日韩亚洲另类| jizzjizzjizz欧美| 国产一区日韩二区欧美三区| 日韩中文字幕1| 亚洲一区欧美一区| 中文字幕制服丝袜成人av| 亚洲精品一区二区三区99| 欧美日韩国产影片| 在线亚洲高清视频| 91视频xxxx| 99精品视频一区| 成人国产精品免费| 国产黑丝在线一区二区三区| 麻豆国产欧美一区二区三区| 午夜久久久久久久久| 亚洲制服欧美中文字幕中文字幕| 中文字幕一区二区三区色视频| 国产色婷婷亚洲99精品小说| 亚洲精品一区二区三区在线观看| 日韩欧美成人一区二区| 欧美丰满嫩嫩电影| 777久久久精品| 欧美一区二区三区在线看| 欧美色男人天堂| 亚洲国产精品二十页| 欧美成人福利视频| 日韩欧美国产综合一区| 欧美哺乳videos| 精品播放一区二区| 亚洲精品一线二线三线| 久久一区二区三区四区| 国产视频在线观看一区二区三区| 精品国产乱码久久久久久浪潮 | 视频一区中文字幕国产| 天天综合网天天综合色 | 国内精品伊人久久久久av一坑 | 亚洲精品成人悠悠色影视| 亚洲精品中文在线观看| 亚洲精品自拍动漫在线| 午夜视频在线观看一区| 免费亚洲电影在线| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲成人一区二区在线观看| 亚洲一区二区三区四区在线| 亚洲国产中文字幕| 免费在线观看精品| 精彩视频一区二区| 粉嫩aⅴ一区二区三区四区| heyzo一本久久综合| 欧美三级韩国三级日本一级| 欧美一区二区三区性视频| 久久蜜桃av一区二区天堂| 中文一区一区三区高中清不卡| 国产精品国产三级国产三级人妇| 伊人夜夜躁av伊人久久| 偷窥国产亚洲免费视频| 国产在线视频不卡二| 99久久精品99国产精品| 欧美精选一区二区| 久久久99精品免费观看不卡| 亚洲精品国产精华液| 蜜桃久久久久久久| av一本久道久久综合久久鬼色| 91福利在线看| 精品粉嫩超白一线天av| 亚洲视频免费看| 美女性感视频久久| 91在线观看下载| 日韩一区二区在线看| 中文字幕一区二区三区精华液| 天天综合天天综合色| 国产精品18久久久久久久久久久久| 色诱视频网站一区| 亚洲精品一线二线三线| 亚洲一区二区三区中文字幕在线| 国产乱子轮精品视频| 欧美在线观看视频在线| 国产午夜精品美女毛片视频| 亚洲mv在线观看| 成人伦理片在线| 日韩欧美国产成人一区二区| 一区二区三区在线影院| 国产99精品国产| 日韩精品一区国产麻豆| 一区二区三区久久久| 国产不卡在线一区| 91精品国产综合久久国产大片| 亚洲私人黄色宅男| 国产一区二区三区视频在线播放| 欧美美女黄视频| 亚洲精品一二三四区| 东方aⅴ免费观看久久av| 精品美女被调教视频大全网站| 亚洲一区二区三区免费视频| 成人午夜在线免费| 2023国产精品视频| 日本中文字幕一区二区视频| 色综合久久88色综合天天免费| 国产免费成人在线视频| 免费在线观看不卡| 欧美福利视频导航| 亚洲国产欧美日韩另类综合| 91偷拍与自偷拍精品| 欧美国产精品一区二区三区| 精品在线免费观看| 日韩美女视频在线| 男女性色大片免费观看一区二区| 欧美四级电影在线观看| 一区二区国产视频| 97se狠狠狠综合亚洲狠狠| 中文字幕一区二区三区乱码在线| 国产成人午夜视频| 国产人成一区二区三区影院| 国产美女在线观看一区| 精品福利在线导航| 国产精品18久久久| 国产精品天美传媒| 不卡在线观看av| 日韩理论片网站| 欧美亚洲综合网| 亚洲成av人片一区二区| 欧美日韩精品久久久| 亚洲午夜久久久| 欧美一区在线视频| 另类小说色综合网站| 2021国产精品久久精品| 国产精品资源在线看| 国产偷国产偷精品高清尤物| 不卡av免费在线观看| 亚洲天堂a在线| 欧美日韩久久久久久| 日本不卡中文字幕| 精品国产乱码久久久久久牛牛 | 美女性感视频久久| 2020国产精品久久精品美国| 国产成人亚洲综合a∨婷婷 | 制服丝袜av成人在线看| 久久精品国产秦先生| 久久精品一区二区三区不卡| av一区二区三区四区| 亚洲福利视频导航| 欧美电影免费观看高清完整版在 | 日韩一区二区中文字幕| 国产老妇另类xxxxx| 亚洲天堂av老司机| 欧美福利视频一区| 国产乱码精品一区二区三| 亚洲欧美日韩综合aⅴ视频| 7777精品伊人久久久大香线蕉超级流畅| 久久精品噜噜噜成人av农村| 欧美国产一区二区在线观看|