mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
do not claim support for codecs with unknown MIB
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
346f64587e
commit
93f9d23ca3
3 changed files with 119 additions and 94 deletions
|
@ -1044,7 +1044,7 @@ QByteArray QIcuCodec::convertFromUnicode(const QChar *unicode, int length,
|
|||
return result;
|
||||
}
|
||||
|
||||
|
||||
#ifndef QT_NO_TEXTCODEC
|
||||
QByteArray QIcuCodec::name() const
|
||||
{
|
||||
return m_name;
|
||||
|
@ -1112,14 +1112,29 @@ int QIcuCodec::mibEnum() const
|
|||
return 2;
|
||||
}
|
||||
|
||||
#ifndef QT_NO_TEXTCODEC
|
||||
QList<QByteArray> QIcuCodec::allCodecs()
|
||||
{
|
||||
QList<QByteArray> allcodecs;
|
||||
|
||||
for (int i = 0; i < ucnv_countAvailable(); i++) {
|
||||
const char *name = ucnv_getAvailableName(i);
|
||||
allcodecs += QByteArray::fromRawData(name, qstrlen(name));
|
||||
UErrorCode error = U_ZERO_ERROR;
|
||||
const char *iana = ucnv_getStandardName(name, "IANA", &error);
|
||||
if (Q_UNLIKELY(U_FAILURE(error))) {
|
||||
#ifdef QICUCODEC_DEBUG
|
||||
qWarning("QIcuCodec::allCodecs: ucnv_getStandardName(%s) failed %s",
|
||||
name, u_errorName(error));
|
||||
#endif
|
||||
continue;
|
||||
} else if (Q_UNLIKELY(!iana)) {
|
||||
continue;
|
||||
}
|
||||
for (qint16 m = 0; m < MIBTblSize; m++) {
|
||||
if (ucnv_compareNames(iana, MIBTbl[m].name) == 0) {
|
||||
allcodecs += QByteArray::fromRawData(name, qstrlen(name));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return allcodecs;
|
||||
|
@ -1131,9 +1146,23 @@ QList<int> QIcuCodec::allMibs()
|
|||
|
||||
for (int i = 0; i < ucnv_countAvailable(); i++) {
|
||||
const char *name = ucnv_getAvailableName(i);
|
||||
UErrorCode error = U_ZERO_ERROR;
|
||||
const char *iana = ucnv_getStandardName(name, "IANA", &error);
|
||||
if (Q_UNLIKELY(U_FAILURE(error))) {
|
||||
#ifdef QICUCODEC_DEBUG
|
||||
qWarning("QIcuCodec::allMibs: ucnv_getStandardName(%s) failed %s",
|
||||
name, u_errorName(error));
|
||||
#endif
|
||||
continue;
|
||||
} else if (Q_UNLIKELY(!iana)) {
|
||||
continue;
|
||||
}
|
||||
for (qint16 m = 0; m < MIBTblSize; m++) {
|
||||
if (ucnv_compareNames(name, MIBTbl[m].name) == 0) {
|
||||
allmibs.append(MIBTbl[m].mib);
|
||||
if (ucnv_compareNames(iana, MIBTbl[m].name) == 0) {
|
||||
if (!allmibs.contains(MIBTbl[m].mib)) {
|
||||
allmibs.append(MIBTbl[m].mib);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,11 +51,11 @@ public:
|
|||
QString convertToUnicode(const char *data, int len, ConverterState *state) const;
|
||||
QByteArray convertFromUnicode(const QChar *unicode, int len, ConverterState *state) const;
|
||||
|
||||
#ifndef QT_NO_TEXTCODEC
|
||||
QByteArray name() const;
|
||||
QList<QByteArray> aliases() const;
|
||||
int mibEnum() const;
|
||||
|
||||
#ifndef QT_NO_TEXTCODEC
|
||||
static QList<QByteArray> allCodecs();
|
||||
static QList<int> allMibs();
|
||||
static QTextCodec* codecForUtf(const QByteArray &text, QTextCodec *defaultCodec);
|
||||
|
|
|
@ -228,89 +228,92 @@ QTextCodec::ConverterState& QTextCodec::ConverterState::operator=(const QTextCod
|
|||
Some of the supported encodings are:
|
||||
|
||||
\list
|
||||
\o Adobe-Standard-Encoding
|
||||
\o Big5
|
||||
\o Big5-HKSCS
|
||||
\o BOCU-1
|
||||
\o CESU-8
|
||||
\o cp851
|
||||
\o EUC-JP
|
||||
\o EUC-KR
|
||||
\o GB18030
|
||||
\o GB2312
|
||||
\o GB_2312-80
|
||||
\o GBK
|
||||
\o hp-roman8
|
||||
\o HZ-GB-2312
|
||||
\o IBM00858
|
||||
\o IBM01140
|
||||
\o IBM01141
|
||||
\o IBM01142
|
||||
\o IBM01143
|
||||
\o IBM01144
|
||||
\o IBM01145
|
||||
\o IBM01146
|
||||
\o IBM01147
|
||||
\o IBM01148
|
||||
\o IBM01149
|
||||
\o IBM037
|
||||
\o IBM1026
|
||||
\o IBM1047
|
||||
\o IBM273
|
||||
\o IBM277
|
||||
\o IBM278
|
||||
\o IBM280
|
||||
\o IBM284
|
||||
\o IBM285
|
||||
\o IBM290
|
||||
\o IBM297
|
||||
\o IBM420
|
||||
\o IBM424
|
||||
\o IBM437
|
||||
\o IBM500
|
||||
\o IBM775
|
||||
\o IBM850
|
||||
\o IBM852
|
||||
\o IBM855
|
||||
\o IBM857
|
||||
\o IBM860
|
||||
\o IBM861
|
||||
\o IBM862
|
||||
\o IBM863
|
||||
\o IBM864
|
||||
\o IBM865
|
||||
\o IBM866
|
||||
\o IBM868
|
||||
\o IBM869
|
||||
\o IBM870
|
||||
\o IBM871
|
||||
\o IBM918
|
||||
\o IBM-Thai
|
||||
\o ISO-2022-CN
|
||||
\o ISO-2022-CN-EXT
|
||||
\o ISO-2022-JP
|
||||
\o ISO-2022-JP-1
|
||||
\o ISO-2022-JP-2
|
||||
\o ISO-2022-KR
|
||||
\o euc-jp-2007
|
||||
\o gb18030
|
||||
\o HZ
|
||||
\o ibm-1026_P100-1995
|
||||
\o ibm-1047_P100-1995
|
||||
\o ibm-1051_P100-1995
|
||||
\o ibm-1089_P100-1995
|
||||
\o ibm-1140_P100-1997
|
||||
\o ibm-1141_P100-1997
|
||||
\o ibm-1142_P100-1997
|
||||
\o ibm-1143_P100-1997
|
||||
\o ibm-1144_P100-1997
|
||||
\o ibm-1145_P100-1997
|
||||
\o ibm-1146_P100-1997
|
||||
\o ibm-1147_P100-1997
|
||||
\o ibm-1148_P100-1997
|
||||
\o ibm-1149_P100-1997
|
||||
\o ibm-1168_P100-2002
|
||||
\o ibm-1276_P100-1995
|
||||
\o ibm-1363_P11B-1998
|
||||
\o ibm-1375_P100-2008
|
||||
\o ibm-1383_P110-1999
|
||||
\o ibm-273_P100-1995
|
||||
\o ibm-277_P100-1995
|
||||
\o ibm-278_P100-1995
|
||||
\o ibm-280_P100-1995
|
||||
\o ibm-284_P100-1995
|
||||
\o ibm-285_P100-1995
|
||||
\o ibm-290_P100-1995
|
||||
\o ibm-297_P100-1995
|
||||
\o ibm-37_P100-1995
|
||||
\o ibm-420_X120-1999
|
||||
\o ibm-424_P100-1995
|
||||
\o ibm-437_P100-1995
|
||||
\o ibm-500_P100-1995
|
||||
\o ibm-5012_P100-1999
|
||||
\o ibm-5346_P100-1998
|
||||
\o ibm-5347_P100-1998
|
||||
\o ibm-5348_P100-1997
|
||||
\o ibm-5349_P100-1998
|
||||
\o ibm-5350_P100-1998
|
||||
\o ibm-5354_P100-1998
|
||||
\o ibm-5478_P100-1995
|
||||
\o ibm-775_P100-1996
|
||||
\o ibm-838_P100-1995
|
||||
\o ibm-850_P100-1995
|
||||
\o ibm-851_P100-1995
|
||||
\o ibm-852_P100-1995
|
||||
\o ibm-855_P100-1995
|
||||
\o ibm-857_P100-1995
|
||||
\o ibm-858_P100-1997
|
||||
\o ibm-860_P100-1995
|
||||
\o ibm-861_P100-1995
|
||||
\o ibm-862_P100-1995
|
||||
\o ibm-863_P100-1995
|
||||
\o ibm-864_X110-1999
|
||||
\o ibm-865_P100-1995
|
||||
\o ibm-866_P100-1995
|
||||
\o ibm-868_P100-1995
|
||||
\o ibm-869_P100-1995
|
||||
\o ibm-870_P100-1995
|
||||
\o ibm-871_P100-1995
|
||||
\o ibm-874_P100-1995
|
||||
\o ibm-878_P100-1996
|
||||
\o ibm-9005_X110-2007
|
||||
\o ibm-912_P100-1995
|
||||
\o ibm-913_P100-2000
|
||||
\o ibm-914_P100-1995
|
||||
\o ibm-915_P100-1995
|
||||
\o ibm-918_P100-1995
|
||||
\o ibm-920_P100-1995
|
||||
\o ibm-921_P100-1995
|
||||
\o ibm-923_P100-1998
|
||||
\o ibm-943_P15A-2003
|
||||
\o ibm-9447_P100-2002
|
||||
\o ibm-9448_X100-2005
|
||||
\o ibm-9449_P100-2002
|
||||
\o ibm-970_P110_P110-2006_U2
|
||||
\o ISO_2022
|
||||
\o ISO-8859-1
|
||||
\o ISO-8859-10
|
||||
\o ISO-8859-13
|
||||
\o ISO-8859-14
|
||||
\o ISO-8859-15
|
||||
\o ISO-8859-2
|
||||
\o ISO-8859-3
|
||||
\o ISO-8859-4
|
||||
\o ISO-8859-5
|
||||
\o ISO-8859-6
|
||||
\o ISO-8859-7
|
||||
\o ISO-8859-8
|
||||
\o ISO-8859-9
|
||||
\o KOI8-R
|
||||
\o KOI8-U
|
||||
\o macintosh
|
||||
\o iso-8859_10-1998
|
||||
\o iso-8859_14-1998
|
||||
\o macos-0_2-10.2
|
||||
\o SCSU
|
||||
\o Shift_JIS
|
||||
\o TIS-620
|
||||
\o US-ASCII
|
||||
\o UTF-16
|
||||
\o UTF-16BE
|
||||
|
@ -320,15 +323,8 @@ QTextCodec::ConverterState& QTextCodec::ConverterState::operator=(const QTextCod
|
|||
\o UTF-32LE
|
||||
\o UTF-7
|
||||
\o UTF-8
|
||||
\o windows-1250
|
||||
\o windows-1251
|
||||
\o windows-1252
|
||||
\o windows-1253
|
||||
\o windows-1254
|
||||
\o windows-1255
|
||||
\o windows-1256
|
||||
\o windows-1257
|
||||
\o windows-1258
|
||||
\o windows-936-2000
|
||||
\o windows-950-2000
|
||||
|
||||
\o System Any of the above depending on the system locale
|
||||
\endlist
|
||||
|
|
Loading…
Add table
Reference in a new issue