summaryrefslogtreecommitdiffstats
path: root/util/unicode/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'util/unicode/main.cpp')
-rw-r--r--util/unicode/main.cpp60
1 files changed, 44 insertions, 16 deletions
diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp
index 26cdab87d6..9826775034 100644
--- a/util/unicode/main.cpp
+++ b/util/unicode/main.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the utils of the Qt Toolkit.
@@ -38,8 +38,8 @@
#include <private/qunicodetables_p.h>
#endif
-#define DATA_VERSION_S "10.0"
-#define DATA_VERSION_STR "QChar::Unicode_10_0"
+#define DATA_VERSION_S "12.1"
+#define DATA_VERSION_STR "QChar::Unicode_12_1"
static QHash<QByteArray, QChar::UnicodeVersion> age_map;
@@ -69,6 +69,9 @@ static void initAgeMap()
{ QChar::Unicode_8_0, "8.0" },
{ QChar::Unicode_9_0, "9.0" },
{ QChar::Unicode_10_0, "10.0" },
+ { QChar::Unicode_11_0, "11.0" },
+ { QChar::Unicode_12_0, "12.0" },
+ { QChar::Unicode_12_1, "12.1" }, // UCD Revision 24
{ QChar::Unicode_Unassigned, 0 }
};
AgeMap *d = ageMap;
@@ -190,9 +193,9 @@ enum Direction {
DirLRI = QChar::DirLRI,
DirRLI = QChar::DirRLI,
DirFSI = QChar::DirFSI,
- DirPDI = QChar::DirPDI
+ DirPDI = QChar::DirPDI,
- , Dir_Unassigned
+ Dir_Unassigned
};
static QHash<QByteArray, Direction> directionMap;
@@ -242,9 +245,9 @@ enum JoiningType {
Joining_Dual,
Joining_Right,
Joining_Left,
- Joining_Transparent
+ Joining_Transparent,
- , Joining_Unassigned
+ Joining_Unassigned
};
static QHash<QByteArray, JoiningType> joining_map;
@@ -291,7 +294,8 @@ static const char *grapheme_break_class_string =
" Graphemebreak_E_Modifier,\n"
" Graphemebreak_Glue_After_Zwj,\n"
" Graphemebreak_E_Base_GAZ,\n"
- " NumGraphemeBreakClasses,\n"
+ "\n"
+ " NumGraphemeBreakClasses\n"
"};\n\n";
enum GraphemeBreakClass {
@@ -377,7 +381,9 @@ static const char *word_break_class_string =
" WordBreak_E_Modifier,\n"
" WordBreak_Glue_After_Zwj,\n"
" WordBreak_E_Base_GAZ,\n"
- " NumWordBreakClasses,\n"
+ " WordBreak_WSegSpace,\n"
+ "\n"
+ " NumWordBreakClasses\n"
"};\n\n";
enum WordBreakClass {
@@ -403,6 +409,7 @@ enum WordBreakClass {
WordBreak_E_Modifier,
WordBreak_Glue_After_Zwj,
WordBreak_E_Base_GAZ,
+ WordBreak_WSegSpace,
WordBreak_Unassigned
};
@@ -437,6 +444,7 @@ static void initWordBreak()
{ WordBreak_E_Modifier, "E_Modifier" },
{ WordBreak_Glue_After_Zwj, "Glue_After_Zwj" },
{ WordBreak_E_Base_GAZ, "E_Base_GAZ" },
+ { WordBreak_WSegSpace, "WSegSpace" },
{ WordBreak_Unassigned, 0 }
};
WordBreakList *d = breaks;
@@ -463,6 +471,7 @@ static const char *sentence_break_class_string =
" SentenceBreak_SContinue,\n"
" SentenceBreak_STerm,\n"
" SentenceBreak_Close,\n"
+ "\n"
" NumSentenceBreakClasses\n"
"};\n\n";
@@ -480,9 +489,9 @@ enum SentenceBreakClass {
SentenceBreak_ATerm,
SentenceBreak_SContinue,
SentenceBreak_STerm,
- SentenceBreak_Close
+ SentenceBreak_Close,
- , SentenceBreak_Unassigned
+ SentenceBreak_Unassigned
};
static QHash<QByteArray, SentenceBreakClass> sentence_break_map;
@@ -531,6 +540,7 @@ static const char *line_break_class_string =
" LineBreak_EB, LineBreak_EM, LineBreak_ZWJ,\n"
" LineBreak_SA, LineBreak_SG, LineBreak_SP,\n"
" LineBreak_CR, LineBreak_LF, LineBreak_BK,\n"
+ "\n"
" NumLineBreakClasses\n"
"};\n\n";
@@ -776,6 +786,18 @@ static void initScriptMap()
{ QChar::Script_Nushu, "Nushu" },
{ QChar::Script_Soyombo, "Soyombo" },
{ QChar::Script_ZanabazarSquare, "ZanabazarSquare" },
+ // 12.1
+ { QChar::Script_Dogra, "Dogra" },
+ { QChar::Script_GunjalaGondi, "GunjalaGondi" },
+ { QChar::Script_HanifiRohingya, "HanifiRohingya" },
+ { QChar::Script_Makasar, "Makasar" },
+ { QChar::Script_Medefaidrin, "Medefaidrin" },
+ { QChar::Script_OldSogdian, "OldSogdian" },
+ { QChar::Script_Sogdian, "Sogdian" },
+ { QChar::Script_Elymaic, "Elymaic" },
+ { QChar::Script_Nandinagari, "Nandinagari" },
+ { QChar::Script_NyiakengPuachueHmong, "NyiakengPuachueHmong" },
+ { QChar::Script_Wancho, "Wancho" },
// unhandled
{ QChar::Script_Unknown, 0 }
@@ -1375,12 +1397,18 @@ static void readArabicShaping()
qFatal("%x: unassigned or unhandled joining type: %s", codepoint, l[2].constData());
break;
case Joining_Transparent:
- if (d.p.category != QChar::Mark_NonSpacing && d.p.category != QChar::Mark_Enclosing && d.p.category != QChar::Other_Format) {
- qFatal("%x: joining type '%s' was met; the current implementation needs to be revised!",
- codepoint, l[2].constData());
+ switch (d.p.category) {
+ case QChar::Mark_Enclosing:
+ case QChar::Mark_NonSpacing:
+ case QChar::Letter_Modifier:
+ case QChar::Other_Format:
+ break;
+ default:
+ qFatal("%x: joining type '%s' was met (category: %d); "
+ "the current implementation needs to be revised!",
+ codepoint, l[2].constData(), d.p.category);
}
- // fall through
-
+ Q_FALLTHROUGH();
default:
d.p.joining = QChar::JoiningType(joining);
break;