summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/codecs/codecs.pri4
-rw-r--r--src/corelib/codecs/qicucodec.cpp3
-rw-r--r--tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp8
3 files changed, 13 insertions, 2 deletions
diff --git a/src/corelib/codecs/codecs.pri b/src/corelib/codecs/codecs.pri
index 86b330c589..bfb677e6fb 100644
--- a/src/corelib/codecs/codecs.pri
+++ b/src/corelib/codecs/codecs.pri
@@ -3,6 +3,7 @@
HEADERS += \
codecs/qisciicodec_p.h \
codecs/qlatincodec_p.h \
+ codecs/qsimplecodec_p.h \
codecs/qtextcodec_p.h \
codecs/qtextcodec.h \
codecs/qtsciicodec_p.h \
@@ -11,6 +12,7 @@ HEADERS += \
SOURCES += \
codecs/qisciicodec.cpp \
codecs/qlatincodec.cpp \
+ codecs/qsimplecodec.cpp \
codecs/qtextcodec.cpp \
codecs/qtsciicodec.cpp \
codecs/qutfcodec.cpp
@@ -22,7 +24,6 @@ contains(QT_CONFIG,icu) {
codecs/qicucodec.cpp
} else {
HEADERS += \
- codecs/qsimplecodec_p.h \
codecs/qgb18030codec_p.h \
codecs/qeucjpcodec_p.h \
codecs/qjiscodec_p.h \
@@ -31,7 +32,6 @@ contains(QT_CONFIG,icu) {
codecs/qbig5codec_p.h
SOURCES += \
- codecs/qsimplecodec.cpp \
codecs/qgb18030codec.cpp \
codecs/qjpunicode.cpp \
codecs/qeucjpcodec.cpp \
diff --git a/src/corelib/codecs/qicucodec.cpp b/src/corelib/codecs/qicucodec.cpp
index 96d62f7084..65cc337708 100644
--- a/src/corelib/codecs/qicucodec.cpp
+++ b/src/corelib/codecs/qicucodec.cpp
@@ -40,6 +40,7 @@
#include "qlatincodec_p.h"
#include "qtsciicodec_p.h"
#include "qisciicodec_p.h"
+#include "qsimplecodec_p.h"
#include "private/qcoreglobaldata_p.h"
#include "qdebug.h"
@@ -364,6 +365,8 @@ static QTextCodec *loadQtCodec(const char *name)
return new QUtf32BECodec;
if (!strcmp(name, "UTF-32LE"))
return new QUtf32LECodec;
+ if (!strcmp(name, "ISO-8859-16") || !strcmp(name, "latin10") || !strcmp(name, "iso-ir-226"))
+ return new QSimpleTextCodec(13 /* == 8859-16*/);
#ifndef QT_NO_CODECS
if (!strcmp(name, "TSCII"))
return new QTsciiCodec;
diff --git a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp
index c96e933f0e..3aa06d237d 100644
--- a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp
@@ -65,6 +65,7 @@ private slots:
void aliasForUTF16() const;
void mibForTSCII() const;
void codecForTSCII() const;
+ void iso8859_16() const;
void utf8Codec_data();
void utf8Codec();
@@ -514,6 +515,13 @@ void tst_QTextCodec::codecForTSCII() const
QCOMPARE(codec->mibEnum(), 2107);
}
+void tst_QTextCodec::iso8859_16() const
+{
+ QTextCodec *codec = QTextCodec::codecForName("ISO8859-16");
+ QVERIFY(codec);
+ QCOMPARE(codec->name(), QByteArray("ISO-8859-16"));
+}
+
static QString fromInvalidUtf8Sequence(const QByteArray &ba)
{
return QString().fill(QChar::ReplacementCharacter, ba.size());