diff options
-rw-r--r-- | src/corelib/tools/qstring.cpp | 4 | ||||
-rw-r--r-- | src/corelib/tools/qunicodetables.cpp | 1 | ||||
-rw-r--r-- | util/unicode/main.cpp | 7 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index f263c0b1db..81fa3bc544 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -6212,8 +6212,8 @@ void qt_string_normalize(QString *data, QString::NormalizationForm mode, QChar:: return; if (version == QChar::Unicode_Unassigned) { - version = UNICODE_DATA_VERSION; - } else if (version != UNICODE_DATA_VERSION) { + version = QChar::currentUnicodeVersion(); + } else if (int(version) <= NormalizationCorrectionsVersionMax) { const QString &s = *data; QChar *d = 0; for (int i = 0; i < NumNormalizationCorrections; ++i) { diff --git a/src/corelib/tools/qunicodetables.cpp b/src/corelib/tools/qunicodetables.cpp index 91d260b724..507186dd24 100644 --- a/src/corelib/tools/qunicodetables.cpp +++ b/src/corelib/tools/qunicodetables.cpp @@ -8029,6 +8029,7 @@ static const NormalizationCorrection uc_normalization_corrections[] = { }; enum { NumNormalizationCorrections = 6 }; +enum { NormalizationCorrectionsVersionMax = 7 }; enum { UnicodeBlockCount = 512 }; // number of unicode blocks enum { UnicodeBlockSize = 128 }; // size of each block diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp index 4a11ec667b..2b4a76363f 100644 --- a/util/unicode/main.cpp +++ b/util/unicode/main.cpp @@ -1078,7 +1078,7 @@ static void readDerivedNormalizationProps() struct NormalizationCorrection { uint codepoint; uint mapped; - uint version; + int version; }; static QByteArray createNormalizationCorrections() @@ -1099,6 +1099,7 @@ static QByteArray createNormalizationCorrections() "static const NormalizationCorrection uc_normalization_corrections[] = {\n"; + int maxVersion = 0; int numCorrections = 0; while (!f.atEnd()) { QByteArray line; @@ -1135,11 +1136,13 @@ static QByteArray createNormalizationCorrections() out += " { 0x" + QByteArray::number(c.codepoint, 16) + ", 0x" + QByteArray::number(c.mapped, 16) + ", " + QString::number(c.version) + " },\n"; ++numCorrections; + maxVersion = qMax(c.version, maxVersion); } out += "};\n\n" - "enum { NumNormalizationCorrections = " + QByteArray::number(numCorrections) + " };\n\n"; + "enum { NumNormalizationCorrections = " + QByteArray::number(numCorrections) + " };\n" + "enum { NormalizationCorrectionsVersionMax = " + QByteArray::number(maxVersion) + " };\n\n"; return out; } |