From 3b778df102e82a7cf4b1db7fca0bcfeadfe98857 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Thu, 5 Apr 2012 02:28:37 +0300 Subject: [PATCH] minor improvement for NormalizationCorrections let's don't hardcode the latests affected version value and simply use the one parsed from NormalizationCorrections.txt Change-Id: I37021e8238d77deada4c5ba7a2d160c87186b9dd Reviewed-by: Lars Knoll --- src/corelib/tools/qstring.cpp | 4 ++-- src/corelib/tools/qunicodetables.cpp | 1 + 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 f263c0b1db0..81fa3bc5446 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 91d260b7240..507186dd242 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 4a11ec667be..2b4a76363f3 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; }