summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-10-20 10:52:26 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-10-20 10:52:26 +0000
commit5820cc12cb9f05b90149c7236166e588b5bda2bc (patch)
tree383447d901784f29841f7b481e5b7b0d9fd5e497
parent20967565edabb728b3826ff1501a8081d6e322ad (diff)
parentfb51fdc13b56502376fb8604fa3fa8328e77f3f7 (diff)
downloadpango-5820cc12cb9f05b90149c7236166e588b5bda2bc.tar.gz
Merge branch 'unicode14' into 'main'
Update Line Break to Unicode 14 See merge request GNOME/pango!480
-rw-r--r--pango/break.c8
-rw-r--r--pango/pango-break-table.h422
-rw-r--r--pango/pango-emoji-table.h47
-rw-r--r--tests/GraphemeBreakTest.txt6
-rw-r--r--tests/SentenceBreakTest.txt6
-rw-r--r--tests/WordBreakTest.txt6
-rw-r--r--tests/testboundaries_ucd.c2
7 files changed, 255 insertions, 242 deletions
diff --git a/pango/break.c b/pango/break.c
index 0cb6666d..917d6031 100644
--- a/pango/break.c
+++ b/pango/break.c
@@ -1118,6 +1118,11 @@ default_break (const char *text,
break_type == G_UNICODE_BREAK_EMOJI_MODIFIER)
break_op = BREAK_PROHIBITED;
+ if ((_pango_Is_Emoji_Extended_Pictographic (prev_wc) &&
+ g_unichar_type (prev_wc) == G_UNICODE_UNASSIGNED) &&
+ break_type == G_UNICODE_BREAK_EMOJI_MODIFIER)
+ break_op = BREAK_PROHIBITED;
+
/* Rule LB29 */
if (prev_break_type == G_UNICODE_BREAK_INFIX_SEPARATOR &&
(break_type == G_UNICODE_BREAK_ALPHABETIC ||
@@ -1137,8 +1142,7 @@ default_break (const char *text,
prev_break_type == G_UNICODE_BREAK_HANGUL_T_JAMO ||
prev_break_type == G_UNICODE_BREAK_HANGUL_LV_SYLLABLE ||
prev_break_type == G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE) &&
- (break_type == G_UNICODE_BREAK_INSEPARABLE ||
- break_type == G_UNICODE_BREAK_POSTFIX))
+ break_type == G_UNICODE_BREAK_POSTFIX)
break_op = BREAK_PROHIBITED;
if (prev_break_type == G_UNICODE_BREAK_PREFIX &&
diff --git a/pango/pango-break-table.h b/pango/pango-break-table.h
index c587fd5a..c5430b39 100644
--- a/pango/pango-break-table.h
+++ b/pango/pango-break-table.h
@@ -6,17 +6,17 @@
*
* on files with these headers:
*
- * # SentenceBreakProperty-13.0.0.txt
- * # Date: 2019-11-27, 03:13:39 GMT
- * # © 2019 Unicode®, Inc.
+ * # SentenceBreakProperty-14.0.0.txt
+ * # Date: 2021-08-12, 23:13:21 GMT
+ * # © 2021 Unicode®, Inc.
* # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
* # For terms of use, see http://www.unicode.org/terms_of_use.html
* #
* # Unicode Character Database
* # For documentation, see http://www.unicode.org/reports/tr44/
- * # IndicSyllabicCategory-13.0.0.txt
- * # Date: 2019-07-22, 19:55:00 GMT [KW, RP]
- * # © 2019 Unicode®, Inc.
+ * # IndicSyllabicCategory-14.0.0.txt
+ * # Date: 2021-05-22, 01:01:00 GMT [KW, RP]
+ * # © 2021 Unicode®, Inc.
* # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
* # For terms of use, see http://www.unicode.org/terms_of_use.html
* #
@@ -66,14 +66,14 @@
* # take the default value for this property, unless they
* # are individually listed in this data file.
* #
- * # EastAsianWidth-13.0.0.txt
- * # Date: 2029-01-21, 18:14:00 GMT [KW, LI]
- * # © 2020 Unicode®, Inc.
+ * # EastAsianWidth-14.0.0.txt
+ * # Date: 2021-07-06, 09:58:53 GMT [KW, LI]
+ * # © 2021 Unicode®, Inc.
* # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
- * # For terms of use, see http://www.unicode.org/terms_of_use.html
+ * # For terms of use, see https://www.unicode.org/terms_of_use.html
* #
* # Unicode Character Database
- * # For documentation, see http://www.unicode.org/reports/tr44/
+ * # For documentation, see https://www.unicode.org/reports/tr44/
* #
* # East_Asian_Width Property
* #
@@ -105,7 +105,7 @@
* # with ranges of code points, the code point count in square brackets.
* #
* # For more information, see UAX #11: East Asian Width,
- * # at http://www.unicode.org/reports/tr11/
+ * # at https://www.unicode.org/reports/tr11/
* #
* # @missing: 0000..10FFFF; N
*/
@@ -119,10 +119,10 @@
static inline gboolean
_pango_is_STerm (gunichar wc)
{
- if ((wc >= 0x0021 && wc <= 0x1809))
+ if ((wc >= 0x0021 && wc <= 0x1945))
{
if (wc == 0x0021 ||
- wc == 0x003F || wc == 0x0589 || (wc >= 0x061E && wc <= 0x061F))
+ wc == 0x003F || wc == 0x0589 || (wc >= 0x061D && wc <= 0x061F))
return TRUE;
if ((wc >= 0x06D4 && wc <= 0x0839))
{
@@ -140,25 +140,25 @@ _pango_is_STerm (gunichar wc)
(wc >= 0x0964 && wc <= 0x0965) ||
(wc >= 0x104A && wc <= 0x104B) || wc == 0x1362)
return TRUE;
- if ((wc >= 0x1367 && wc <= 0x1809))
+ if ((wc >= 0x1367 && wc <= 0x1945))
{
if ((wc >= 0x1367 && wc <= 0x1368))
return TRUE;
- if (wc == 0x166E)
+ if (wc == 0x166E || (wc >= 0x1735 && wc <= 0x1736))
return TRUE;
- if ((wc >= 0x1735 && wc <= 0x1736))
+ if (wc == 0x1803)
return TRUE;
- if (wc == 0x1803 || wc == 0x1809)
+ if (wc == 0x1809 || (wc >= 0x1944 && wc <= 0x1945))
return TRUE;
return FALSE;
}
return FALSE;
}
- if ((wc >= 0x1944 && wc <= 0xA92F))
+ if ((wc >= 0x1AA8 && wc <= 0xA92F))
{
- if ((wc >= 0x1944 && wc <= 0x1945) ||
- (wc >= 0x1AA8 && wc <= 0x1AAB) ||
- (wc >= 0x1B5A && wc <= 0x1B5B) || (wc >= 0x1B5E && wc <= 0x1B5F))
+ if ((wc >= 0x1AA8 && wc <= 0x1AAB) ||
+ (wc >= 0x1B5A && wc <= 0x1B5B) ||
+ (wc >= 0x1B5E && wc <= 0x1B5F) || (wc >= 0x1B7D && wc <= 0x1B7E))
return TRUE;
if ((wc >= 0x1C3B && wc <= 0x2E2E))
{
@@ -173,13 +173,13 @@ _pango_is_STerm (gunichar wc)
return FALSE;
}
if (wc == 0x2E3C ||
- wc == 0x3002 || wc == 0xA4FF || (wc >= 0xA60E && wc <= 0xA60F))
+ (wc >= 0x2E53 && wc <= 0x2E54) || wc == 0x3002 || wc == 0xA4FF)
return TRUE;
- if ((wc >= 0xA6F3 && wc <= 0xA92F))
+ if ((wc >= 0xA60E && wc <= 0xA92F))
{
- if (wc == 0xA6F3)
+ if ((wc >= 0xA60E && wc <= 0xA60F))
return TRUE;
- if (wc == 0xA6F7)
+ if (wc == 0xA6F3 || wc == 0xA6F7)
return TRUE;
if ((wc >= 0xA876 && wc <= 0xA877))
return TRUE;
@@ -208,15 +208,15 @@ _pango_is_STerm (gunichar wc)
return FALSE;
}
if ((wc >= 0x10F55 && wc <= 0x10F59) ||
+ (wc >= 0x10F86 && wc <= 0x10F89) ||
(wc >= 0x11047 && wc <= 0x11048) ||
- (wc >= 0x110BE && wc <= 0x110C1) ||
- (wc >= 0x11141 && wc <= 0x11143))
+ (wc >= 0x110BE && wc <= 0x110C1))
return TRUE;
- if ((wc >= 0x111C5 && wc <= 0x1123C))
+ if ((wc >= 0x11141 && wc <= 0x1123C))
{
- if ((wc >= 0x111C5 && wc <= 0x111C6))
+ if ((wc >= 0x11141 && wc <= 0x11143))
return TRUE;
- if (wc == 0x111CD)
+ if ((wc >= 0x111C5 && wc <= 0x111C6) || wc == 0x111CD)
return TRUE;
if ((wc >= 0x111DE && wc <= 0x111DF))
return TRUE;
@@ -392,7 +392,7 @@ _pango_is_Vowel_Dependent (gunichar wc)
}
return FALSE;
}
- if ((wc >= 0x0CCA && wc <= 0x17C8))
+ if ((wc >= 0x0CCA && wc <= 0x1928))
{
if ((wc >= 0x0CCA && wc <= 0x0D63))
{
@@ -409,7 +409,7 @@ _pango_is_Vowel_Dependent (gunichar wc)
return TRUE;
return FALSE;
}
- if ((wc >= 0x0DCF && wc <= 0x0EB9))
+ if ((wc >= 0x0DCF && wc <= 0x0EBB))
{
if ((wc >= 0x0DCF && wc <= 0x0DD4) || wc == 0x0DD6)
return TRUE;
@@ -419,134 +419,136 @@ _pango_is_Vowel_Dependent (gunichar wc)
if ((wc >= 0x0E30 && wc <= 0x0E39) ||
(wc >= 0x0E40 && wc <= 0x0E45))
return TRUE;
- if (wc == 0x0E47 || (wc >= 0x0EB0 && wc <= 0x0EB9))
+ if (wc == 0x0E47 || (wc >= 0x0EB0 && wc <= 0x0EB9) || wc == 0x0EBB)
return TRUE;
return FALSE;
}
- if ((wc >= 0x0EBB && wc <= 0x1068))
+ if ((wc >= 0x0EC0 && wc <= 0x1074))
{
- if (wc == 0x0EBB || (wc >= 0x0EC0 && wc <= 0x0EC4))
+ if ((wc >= 0x0EC0 && wc <= 0x0EC4) ||
+ (wc >= 0x0F71 && wc <= 0x0F7D))
return TRUE;
- if ((wc >= 0x0F71 && wc <= 0x0F7D) ||
- (wc >= 0x0F80 && wc <= 0x0F81))
+ if ((wc >= 0x0F80 && wc <= 0x0F81) ||
+ (wc >= 0x102B && wc <= 0x1035))
return TRUE;
- if ((wc >= 0x102B && wc <= 0x1035) ||
- (wc >= 0x1056 && wc <= 0x1059))
+ if ((wc >= 0x1056 && wc <= 0x1059) || wc == 0x1062)
return TRUE;
- if (wc == 0x1062 || (wc >= 0x1067 && wc <= 0x1068))
+ if ((wc >= 0x1067 && wc <= 0x1068) ||
+ (wc >= 0x1071 && wc <= 0x1074))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1071 && wc <= 0x17C8))
+ if ((wc >= 0x1083 && wc <= 0x1928))
{
- if ((wc >= 0x1071 && wc <= 0x1074) ||
- (wc >= 0x1083 && wc <= 0x1086))
+ if ((wc >= 0x1083 && wc <= 0x1086) ||
+ (wc >= 0x109C && wc <= 0x109D))
return TRUE;
- if ((wc >= 0x109C && wc <= 0x109D) ||
- (wc >= 0x1712 && wc <= 0x1713))
+ if ((wc >= 0x1712 && wc <= 0x1713) ||
+ (wc >= 0x1732 && wc <= 0x1733))
return TRUE;
- if ((wc >= 0x1732 && wc <= 0x1733) ||
- (wc >= 0x1752 && wc <= 0x1753))
+ if ((wc >= 0x1752 && wc <= 0x1753) ||
+ (wc >= 0x1772 && wc <= 0x1773))
return TRUE;
- if ((wc >= 0x1772 && wc <= 0x1773) ||
- (wc >= 0x17B6 && wc <= 0x17C5) || wc == 0x17C8)
+ if ((wc >= 0x17B6 && wc <= 0x17C5) ||
+ wc == 0x17C8 || (wc >= 0x1920 && wc <= 0x1928))
return TRUE;
return FALSE;
}
return FALSE;
}
- if ((wc >= 0x1920 && wc <= 0x11344))
+ if ((wc >= 0x193A && wc <= 0x112E8))
{
- if ((wc >= 0x1920 && wc <= 0x1BEF))
+ if ((wc >= 0x193A && wc <= 0x1C2C))
{
- if ((wc >= 0x1920 && wc <= 0x1928) || wc == 0x193A)
+ if (wc == 0x193A || (wc >= 0x19B0 && wc <= 0x19C0))
return TRUE;
- if ((wc >= 0x19B0 && wc <= 0x19C0) ||
- (wc >= 0x1A17 && wc <= 0x1A1B))
+ if ((wc >= 0x1A17 && wc <= 0x1A1B) ||
+ (wc >= 0x1A61 && wc <= 0x1A73))
return TRUE;
- if ((wc >= 0x1A61 && wc <= 0x1A73) ||
- (wc >= 0x1B35 && wc <= 0x1B43))
+ if ((wc >= 0x1B35 && wc <= 0x1B43) ||
+ (wc >= 0x1BA4 && wc <= 0x1BA9))
return TRUE;
- if ((wc >= 0x1BA4 && wc <= 0x1BA9) ||
- (wc >= 0x1BE7 && wc <= 0x1BEF))
+ if ((wc >= 0x1BE7 && wc <= 0x1BEF) ||
+ (wc >= 0x1C26 && wc <= 0x1C2C))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1C26 && wc <= 0xA9E5))
+ if ((wc >= 0xA802 && wc <= 0xAA32))
{
- if ((wc >= 0x1C26 && wc <= 0x1C2C) || wc == 0xA802)
+ if (wc == 0xA802 || (wc >= 0xA823 && wc <= 0xA827))
return TRUE;
- if ((wc >= 0xA823 && wc <= 0xA827) ||
- (wc >= 0xA8B5 && wc <= 0xA8C3))
+ if ((wc >= 0xA8B5 && wc <= 0xA8C3) || wc == 0xA8FF)
return TRUE;
- if (wc == 0xA8FF || (wc >= 0xA947 && wc <= 0xA94E))
+ if ((wc >= 0xA947 && wc <= 0xA94E) ||
+ (wc >= 0xA9B4 && wc <= 0xA9BC))
return TRUE;
- if ((wc >= 0xA9B4 && wc <= 0xA9BC) || wc == 0xA9E5)
+ if (wc == 0xA9E5 || (wc >= 0xAA29 && wc <= 0xAA32))
return TRUE;
return FALSE;
}
- if ((wc >= 0xAA29 && wc <= 0x11045))
+ if ((wc >= 0xAAB0 && wc <= 0x11074))
{
- if ((wc >= 0xAA29 && wc <= 0xAA32) ||
- (wc >= 0xAAB0 && wc <= 0xAABE))
+ if ((wc >= 0xAAB0 && wc <= 0xAABE) ||
+ (wc >= 0xAAEB && wc <= 0xAAEF))
return TRUE;
- if ((wc >= 0xAAEB && wc <= 0xAAEF) ||
- (wc >= 0xABE3 && wc <= 0xABEA))
+ if ((wc >= 0xABE3 && wc <= 0xABEA) ||
+ (wc >= 0x10A01 && wc <= 0x10A03))
return TRUE;
- if ((wc >= 0x10A01 && wc <= 0x10A03) ||
- (wc >= 0x10A05 && wc <= 0x10A06))
+ if ((wc >= 0x10A05 && wc <= 0x10A06) ||
+ (wc >= 0x10A0C && wc <= 0x10A0D))
return TRUE;
- if ((wc >= 0x10A0C && wc <= 0x10A0D) ||
- (wc >= 0x11038 && wc <= 0x11045))
+ if ((wc >= 0x11038 && wc <= 0x11045) ||
+ (wc >= 0x11073 && wc <= 0x11074))
return TRUE;
return FALSE;
}
- if ((wc >= 0x110B0 && wc <= 0x11344))
+ if ((wc >= 0x110B0 && wc <= 0x112E8))
{
- if ((wc >= 0x110B0 && wc <= 0x110B8) ||
- (wc >= 0x11127 && wc <= 0x11132))
+ if ((wc >= 0x110B0 && wc <= 0x110B8) || wc == 0x110C2)
return TRUE;
- if ((wc >= 0x11145 && wc <= 0x11146) ||
- (wc >= 0x111B3 && wc <= 0x111BF))
+ if ((wc >= 0x11127 && wc <= 0x11132) ||
+ (wc >= 0x11145 && wc <= 0x11146))
return TRUE;
- if ((wc >= 0x111CB && wc <= 0x111CC) || wc == 0x111CE)
+ if ((wc >= 0x111B3 && wc <= 0x111BF) ||
+ (wc >= 0x111CB && wc <= 0x111CC))
return TRUE;
- if ((wc >= 0x1122C && wc <= 0x11233) ||
- (wc >= 0x112E0 && wc <= 0x112E8) ||
- (wc >= 0x1133E && wc <= 0x11344))
+ if (wc == 0x111CE ||
+ (wc >= 0x1122C && wc <= 0x11233) ||
+ (wc >= 0x112E0 && wc <= 0x112E8))
return TRUE;
return FALSE;
}
return FALSE;
}
- if ((wc >= 0x11347 && wc <= 0x11EF6))
+ if ((wc >= 0x1133E && wc <= 0x11EF6))
{
- if ((wc >= 0x11347 && wc <= 0x115BB))
+ if ((wc >= 0x1133E && wc <= 0x115B5))
{
- if ((wc >= 0x11347 && wc <= 0x11348) ||
- (wc >= 0x1134B && wc <= 0x1134C))
+ if ((wc >= 0x1133E && wc <= 0x11344) ||
+ (wc >= 0x11347 && wc <= 0x11348))
return TRUE;
- if (wc == 0x11357 || (wc >= 0x11362 && wc <= 0x11363))
+ if ((wc >= 0x1134B && wc <= 0x1134C) || wc == 0x11357)
return TRUE;
- if ((wc >= 0x11435 && wc <= 0x11441) ||
- (wc >= 0x114B0 && wc <= 0x114BE))
+ if ((wc >= 0x11362 && wc <= 0x11363) ||
+ (wc >= 0x11435 && wc <= 0x11441))
return TRUE;
- if ((wc >= 0x115AF && wc <= 0x115B5) ||
- (wc >= 0x115B8 && wc <= 0x115BB))
+ if ((wc >= 0x114B0 && wc <= 0x114BE) ||
+ (wc >= 0x115AF && wc <= 0x115B5))
return TRUE;
return FALSE;
}
- if ((wc >= 0x115DC && wc <= 0x11938))
+ if ((wc >= 0x115B8 && wc <= 0x11938))
{
- if ((wc >= 0x115DC && wc <= 0x115DD) ||
- (wc >= 0x11630 && wc <= 0x1163C))
+ if ((wc >= 0x115B8 && wc <= 0x115BB) ||
+ (wc >= 0x115DC && wc <= 0x115DD))
return TRUE;
- if (wc == 0x11640 || (wc >= 0x116AD && wc <= 0x116B5))
+ if ((wc >= 0x11630 && wc <= 0x1163C) || wc == 0x11640)
return TRUE;
- if ((wc >= 0x11720 && wc <= 0x1172A) ||
- (wc >= 0x1182C && wc <= 0x11836))
+ if ((wc >= 0x116AD && wc <= 0x116B5) ||
+ (wc >= 0x11720 && wc <= 0x1172A))
return TRUE;
- if ((wc >= 0x11930 && wc <= 0x11935) ||
+ if ((wc >= 0x1182C && wc <= 0x11836) ||
+ (wc >= 0x11930 && wc <= 0x11935) ||
(wc >= 0x11937 && wc <= 0x11938))
return TRUE;
return FALSE;
@@ -605,82 +607,79 @@ _pango_is_Consonant_Preceding_Repha (gunichar wc)
static inline gboolean
_pango_is_EastAsianWide (gunichar wc)
{
- if ((wc >= 0x1100 && wc <= 0x2797))
+ if ((wc >= 0x1100 && wc <= 0x27B0))
{
- if ((wc >= 0x1100 && wc <= 0x23F3))
+ if ((wc >= 0x1100 && wc <= 0x25FE))
{
- if ((wc >= 0x1100 && wc <= 0x115F))
+ if ((wc >= 0x1100 && wc <= 0x115F) || wc == 0x20A9)
return TRUE;
- if (wc == 0x20A9 || (wc >= 0x231A && wc <= 0x231B))
+ if ((wc >= 0x231A && wc <= 0x231B) ||
+ (wc >= 0x2329 && wc <= 0x232A))
return TRUE;
- if ((wc >= 0x2329 && wc <= 0x232A))
+ if ((wc >= 0x23E9 && wc <= 0x23EC) || wc == 0x23F0)
return TRUE;
- if ((wc >= 0x23E9 && wc <= 0x23EC) || wc == 0x23F0 || wc == 0x23F3)
+ if (wc == 0x23F3 || (wc >= 0x25FD && wc <= 0x25FE))
return TRUE;
return FALSE;
}
- if ((wc >= 0x25FD && wc <= 0x26BE))
+ if ((wc >= 0x2614 && wc <= 0x26C5))
{
- if ((wc >= 0x25FD && wc <= 0x25FE) ||
- (wc >= 0x2614 && wc <= 0x2615))
+ if ((wc >= 0x2614 && wc <= 0x2615) ||
+ (wc >= 0x2648 && wc <= 0x2653))
return TRUE;
- if ((wc >= 0x2648 && wc <= 0x2653) || wc == 0x267F)
+ if (wc == 0x267F || wc == 0x2693)
return TRUE;
- if (wc == 0x2693 || wc == 0x26A1)
+ if (wc == 0x26A1 || (wc >= 0x26AA && wc <= 0x26AB))
return TRUE;
- if ((wc >= 0x26AA && wc <= 0x26AB) ||
- (wc >= 0x26BD && wc <= 0x26BE))
+ if ((wc >= 0x26BD && wc <= 0x26BE) ||
+ (wc >= 0x26C4 && wc <= 0x26C5))
return TRUE;
return FALSE;
}
- if ((wc >= 0x26C4 && wc <= 0x26FA))
+ if ((wc >= 0x26CE && wc <= 0x2705))
{
- if ((wc >= 0x26C4 && wc <= 0x26C5))
- return TRUE;
if (wc == 0x26CE || wc == 0x26D4)
return TRUE;
- if (wc == 0x26EA)
+ if (wc == 0x26EA || (wc >= 0x26F2 && wc <= 0x26F3))
return TRUE;
- if ((wc >= 0x26F2 && wc <= 0x26F3) || wc == 0x26F5 || wc == 0x26FA)
+ if (wc == 0x26F5 || wc == 0x26FA)
+ return TRUE;
+ if (wc == 0x26FD || wc == 0x2705)
return TRUE;
return FALSE;
}
- if ((wc >= 0x26FD && wc <= 0x2797))
+ if ((wc >= 0x270A && wc <= 0x27B0))
{
- if (wc == 0x26FD || wc == 0x2705)
- return TRUE;
if ((wc >= 0x270A && wc <= 0x270B) || wc == 0x2728)
return TRUE;
if (wc == 0x274C || wc == 0x274E)
return TRUE;
- if ((wc >= 0x2753 && wc <= 0x2755) ||
- wc == 0x2757 || (wc >= 0x2795 && wc <= 0x2797))
+ if ((wc >= 0x2753 && wc <= 0x2755) || wc == 0x2757)
+ return TRUE;
+ if ((wc >= 0x2795 && wc <= 0x2797) || wc == 0x27B0)
return TRUE;
return FALSE;
}
return FALSE;
}
- if ((wc >= 0x27B0 && wc <= 0xFFC7))
+ if ((wc >= 0x27BF && wc <= 0xFFD7))
{
- if ((wc >= 0x27B0 && wc <= 0x2EF3))
+ if ((wc >= 0x27BF && wc <= 0x2FFB))
{
- if (wc == 0x27B0)
- return TRUE;
if (wc == 0x27BF || (wc >= 0x2B1B && wc <= 0x2B1C))
return TRUE;
- if (wc == 0x2B50)
+ if (wc == 0x2B50 || wc == 0x2B55)
return TRUE;
- if (wc == 0x2B55 ||
- (wc >= 0x2E80 && wc <= 0x2E99) ||
+ if ((wc >= 0x2E80 && wc <= 0x2E99) ||
(wc >= 0x2E9B && wc <= 0x2EF3))
return TRUE;
- return FALSE;
- }
- if ((wc >= 0x2F00 && wc <= 0x318E))
- {
if ((wc >= 0x2F00 && wc <= 0x2FD5) ||
(wc >= 0x2FF0 && wc <= 0x2FFB))
return TRUE;
+ return FALSE;
+ }
+ if ((wc >= 0x3000 && wc <= 0x321E))
+ {
if (wc == 0x3000 || (wc >= 0x3001 && wc <= 0x303E))
return TRUE;
if ((wc >= 0x3041 && wc <= 0x3096) ||
@@ -689,66 +688,70 @@ _pango_is_EastAsianWide (gunichar wc)
if ((wc >= 0x3105 && wc <= 0x312F) ||
(wc >= 0x3131 && wc <= 0x318E))
return TRUE;
+ if ((wc >= 0x3190 && wc <= 0x31E3) ||
+ (wc >= 0x31F0 && wc <= 0x321E))
+ return TRUE;
return FALSE;
}
- if ((wc >= 0x3190 && wc <= 0xA97C))
+ if ((wc >= 0x3220 && wc <= 0xFE19))
{
- if ((wc >= 0x3190 && wc <= 0x31E3))
+ if ((wc >= 0x3220 && wc <= 0x3247) ||
+ (wc >= 0x3250 && wc <= 0x4DBF))
return TRUE;
- if ((wc >= 0x31F0 && wc <= 0x321E) ||
- (wc >= 0x3220 && wc <= 0x3247))
+ if ((wc >= 0x4E00 && wc <= 0xA48C) ||
+ (wc >= 0xA490 && wc <= 0xA4C6))
return TRUE;
- if ((wc >= 0x3250 && wc <= 0x4DBF))
+ if ((wc >= 0xA960 && wc <= 0xA97C) ||
+ (wc >= 0xAC00 && wc <= 0xD7A3))
return TRUE;
- if ((wc >= 0x4E00 && wc <= 0xA48C) ||
- (wc >= 0xA490 && wc <= 0xA4C6) ||
- (wc >= 0xA960 && wc <= 0xA97C))
+ if ((wc >= 0xF900 && wc <= 0xFAFF) ||
+ (wc >= 0xFE10 && wc <= 0xFE19))
return TRUE;
return FALSE;
}
- if ((wc >= 0xAC00 && wc <= 0xFFC7))
+ if ((wc >= 0xFE30 && wc <= 0xFFD7))
{
- if ((wc >= 0xAC00 && wc <= 0xD7A3) ||
- (wc >= 0xF900 && wc <= 0xFAFF))
+ if ((wc >= 0xFE30 && wc <= 0xFE52) ||
+ (wc >= 0xFE54 && wc <= 0xFE66))
return TRUE;
- if ((wc >= 0xFE10 && wc <= 0xFE19) ||
- (wc >= 0xFE30 && wc <= 0xFE52))
+ if ((wc >= 0xFE68 && wc <= 0xFE6B) ||
+ (wc >= 0xFF01 && wc <= 0xFF60))
return TRUE;
- if ((wc >= 0xFE54 && wc <= 0xFE66) ||
- (wc >= 0xFE68 && wc <= 0xFE6B))
- return TRUE;
- if ((wc >= 0xFF01 && wc <= 0xFF60) ||
- (wc >= 0xFF61 && wc <= 0xFFBE) ||
+ if ((wc >= 0xFF61 && wc <= 0xFFBE) ||
(wc >= 0xFFC2 && wc <= 0xFFC7))
return TRUE;
+ if ((wc >= 0xFFCA && wc <= 0xFFCF) ||
+ (wc >= 0xFFD2 && wc <= 0xFFD7))
+ return TRUE;
return FALSE;
}
return FALSE;
}
- if ((wc >= 0xFFCA && wc <= 0x1F3F4))
+ if ((wc >= 0xFFDA && wc <= 0x1F3F4))
{
- if ((wc >= 0xFFCA && wc <= 0x16FF1))
+ if ((wc >= 0xFFDA && wc <= 0x18D08))
{
- if ((wc >= 0xFFCA && wc <= 0xFFCF))
+ if ((wc >= 0xFFDA && wc <= 0xFFDC) ||
+ (wc >= 0xFFE0 && wc <= 0xFFE6))
return TRUE;
- if ((wc >= 0xFFD2 && wc <= 0xFFD7) ||
- (wc >= 0xFFDA && wc <= 0xFFDC))
+ if ((wc >= 0xFFE8 && wc <= 0xFFEE) ||
+ (wc >= 0x16FE0 && wc <= 0x16FE4))
return TRUE;
- if ((wc >= 0xFFE0 && wc <= 0xFFE6))
+ if ((wc >= 0x16FF0 && wc <= 0x16FF1) ||
+ (wc >= 0x17000 && wc <= 0x187F7))
return TRUE;
- if ((wc >= 0xFFE8 && wc <= 0xFFEE) ||
- (wc >= 0x16FE0 && wc <= 0x16FE4) ||
- (wc >= 0x16FF0 && wc <= 0x16FF1))
+ if ((wc >= 0x18800 && wc <= 0x18CD5) ||
+ (wc >= 0x18D00 && wc <= 0x18D08))
return TRUE;
return FALSE;
}
- if ((wc >= 0x17000 && wc <= 0x1F004))
+ if ((wc >= 0x1AFF0 && wc <= 0x1F004))
{
- if ((wc >= 0x17000 && wc <= 0x187F7) ||
- (wc >= 0x18800 && wc <= 0x18CD5))
+ if ((wc >= 0x1AFF0 && wc <= 0x1AFF3) ||
+ (wc >= 0x1AFF5 && wc <= 0x1AFFB))
return TRUE;
- if ((wc >= 0x18D00 && wc <= 0x18D08) ||
- (wc >= 0x1B000 && wc <= 0x1B11E))
+ if ((wc >= 0x1AFFD && wc <= 0x1AFFE) ||
+ (wc >= 0x1B000 && wc <= 0x1B122))
return TRUE;
if ((wc >= 0x1B150 && wc <= 0x1B152) ||
(wc >= 0x1B164 && wc <= 0x1B167))
@@ -757,33 +760,33 @@ _pango_is_EastAsianWide (gunichar wc)
return TRUE;
return FALSE;
}
- if ((wc >= 0x1F0CF && wc <= 0x1F251))
+ if ((wc >= 0x1F0CF && wc <= 0x1F265))
{
- if (wc == 0x1F0CF)
- return TRUE;
- if (wc == 0x1F18E || (wc >= 0x1F191 && wc <= 0x1F19A))
+ if (wc == 0x1F0CF || wc == 0x1F18E)
return TRUE;
- if ((wc >= 0x1F200 && wc <= 0x1F202))
+ if ((wc >= 0x1F191 && wc <= 0x1F19A) ||
+ (wc >= 0x1F200 && wc <= 0x1F202))
return TRUE;
if ((wc >= 0x1F210 && wc <= 0x1F23B) ||
- (wc >= 0x1F240 && wc <= 0x1F248) ||
- (wc >= 0x1F250 && wc <= 0x1F251))
+ (wc >= 0x1F240 && wc <= 0x1F248))
+ return TRUE;
+ if ((wc >= 0x1F250 && wc <= 0x1F251) ||
+ (wc >= 0x1F260 && wc <= 0x1F265))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1F260 && wc <= 0x1F3F4))
+ if ((wc >= 0x1F300 && wc <= 0x1F3F4))
{
- if ((wc >= 0x1F260 && wc <= 0x1F265) ||
- (wc >= 0x1F300 && wc <= 0x1F320))
+ if ((wc >= 0x1F300 && wc <= 0x1F320) ||
+ (wc >= 0x1F32D && wc <= 0x1F335))
return TRUE;
- if ((wc >= 0x1F32D && wc <= 0x1F335) ||
- (wc >= 0x1F337 && wc <= 0x1F37C))
+ if ((wc >= 0x1F337 && wc <= 0x1F37C) ||
+ (wc >= 0x1F37E && wc <= 0x1F393))
return TRUE;
- if ((wc >= 0x1F37E && wc <= 0x1F393) ||
- (wc >= 0x1F3A0 && wc <= 0x1F3CA))
+ if ((wc >= 0x1F3A0 && wc <= 0x1F3CA) ||
+ (wc >= 0x1F3CF && wc <= 0x1F3D3))
return TRUE;
- if ((wc >= 0x1F3CF && wc <= 0x1F3D3) ||
- (wc >= 0x1F3E0 && wc <= 0x1F3F0) || wc == 0x1F3F4)
+ if ((wc >= 0x1F3E0 && wc <= 0x1F3F0) || wc == 0x1F3F4)
return TRUE;
return FALSE;
}
@@ -791,60 +794,61 @@ _pango_is_EastAsianWide (gunichar wc)
}
if ((wc >= 0x1F3F8 && wc <= 0x3FFFD))
{
- if ((wc >= 0x1F3F8 && wc <= 0x1F57A))
+ if ((wc >= 0x1F3F8 && wc <= 0x1F596))
{
- if ((wc >= 0x1F3F8 && wc <= 0x1F43E))
- return TRUE;
- if (wc == 0x1F440 || (wc >= 0x1F442 && wc <= 0x1F4FC))
+ if ((wc >= 0x1F3F8 && wc <= 0x1F43E) || wc == 0x1F440)
return TRUE;
- if ((wc >= 0x1F4FF && wc <= 0x1F53D))
+ if ((wc >= 0x1F442 && wc <= 0x1F4FC) ||
+ (wc >= 0x1F4FF && wc <= 0x1F53D))
return TRUE;
if ((wc >= 0x1F54B && wc <= 0x1F54E) ||
- (wc >= 0x1F550 && wc <= 0x1F567) || wc == 0x1F57A)
+ (wc >= 0x1F550 && wc <= 0x1F567))
+ return TRUE;
+ if (wc == 0x1F57A || (wc >= 0x1F595 && wc <= 0x1F596))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1F595 && wc <= 0x1F6EC))
+ if ((wc >= 0x1F5A4 && wc <= 0x1F6EC))
{
- if ((wc >= 0x1F595 && wc <= 0x1F596) || wc == 0x1F5A4)
+ if (wc == 0x1F5A4 || (wc >= 0x1F5FB && wc <= 0x1F64F))
return TRUE;
- if ((wc >= 0x1F5FB && wc <= 0x1F64F) ||
- (wc >= 0x1F680 && wc <= 0x1F6C5))
+ if ((wc >= 0x1F680 && wc <= 0x1F6C5) || wc == 0x1F6CC)
return TRUE;
- if (wc == 0x1F6CC || (wc >= 0x1F6D0 && wc <= 0x1F6D2))
+ if ((wc >= 0x1F6D0 && wc <= 0x1F6D2) ||
+ (wc >= 0x1F6D5 && wc <= 0x1F6D7))
return TRUE;
- if ((wc >= 0x1F6D5 && wc <= 0x1F6D7) ||
+ if ((wc >= 0x1F6DD && wc <= 0x1F6DF) ||
(wc >= 0x1F6EB && wc <= 0x1F6EC))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1F6F4 && wc <= 0x1F9FF))
+ if ((wc >= 0x1F6F4 && wc <= 0x1FA7C))
{
- if ((wc >= 0x1F6F4 && wc <= 0x1F6FC))
+ if ((wc >= 0x1F6F4 && wc <= 0x1F6FC) ||
+ (wc >= 0x1F7E0 && wc <= 0x1F7EB))
return TRUE;
- if ((wc >= 0x1F7E0 && wc <= 0x1F7EB) ||
- (wc >= 0x1F90C && wc <= 0x1F93A))
+ if (wc == 0x1F7F0 || (wc >= 0x1F90C && wc <= 0x1F93A))
return TRUE;
- if ((wc >= 0x1F93C && wc <= 0x1F945))
+ if ((wc >= 0x1F93C && wc <= 0x1F945) ||
+ (wc >= 0x1F947 && wc <= 0x1F9FF))
return TRUE;
- if ((wc >= 0x1F947 && wc <= 0x1F978) ||
- (wc >= 0x1F97A && wc <= 0x1F9CB) ||
- (wc >= 0x1F9CD && wc <= 0x1F9FF))
+ if ((wc >= 0x1FA70 && wc <= 0x1FA74) ||
+ (wc >= 0x1FA78 && wc <= 0x1FA7C))
return TRUE;
return FALSE;
}
- if ((wc >= 0x1FA70 && wc <= 0x3FFFD))
+ if ((wc >= 0x1FA80 && wc <= 0x3FFFD))
{
- if ((wc >= 0x1FA70 && wc <= 0x1FA74) ||
- (wc >= 0x1FA78 && wc <= 0x1FA7A))
- return TRUE;
if ((wc >= 0x1FA80 && wc <= 0x1FA86) ||
- (wc >= 0x1FA90 && wc <= 0x1FAA8))
+ (wc >= 0x1FA90 && wc <= 0x1FAAC))
+ return TRUE;
+ if ((wc >= 0x1FAB0 && wc <= 0x1FABA) ||
+ (wc >= 0x1FAC0 && wc <= 0x1FAC5))
return TRUE;
- if ((wc >= 0x1FAB0 && wc <= 0x1FAB6) ||
- (wc >= 0x1FAC0 && wc <= 0x1FAC2))
+ if ((wc >= 0x1FAD0 && wc <= 0x1FAD9) ||
+ (wc >= 0x1FAE0 && wc <= 0x1FAE7))
return TRUE;
- if ((wc >= 0x1FAD0 && wc <= 0x1FAD6) ||
+ if ((wc >= 0x1FAF0 && wc <= 0x1FAF6) ||
(wc >= 0x20000 && wc <= 0x2FFFD) ||
(wc >= 0x30000 && wc <= 0x3FFFD))
return TRUE;
diff --git a/pango/pango-emoji-table.h b/pango/pango-emoji-table.h
index 33b33b04..84cd9193 100644
--- a/pango/pango-emoji-table.h
+++ b/pango/pango-emoji-table.h
@@ -6,14 +6,14 @@
*
* on file with this header:
*
- * # emoji-data.txt
- * # Date: 2020-01-28, 20:52:38 GMT
- * # © 2020 Unicode®, Inc.
+ * # emoji-data-14.0.0.txt
+ * # Date: 2021-08-26, 17:22:22 GMT
+ * # © 2021 Unicode®, Inc.
* # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
* # For terms of use, see http://www.unicode.org/terms_of_use.html
* #
* # Emoji Data for UTS #51
- * # Version: 13.0
+ * # Used with Emoji Version 14.0 and subsequent minor revisions (if any)
* #
* # For documentation and usage, see http://www.unicode.org/reports/tr51
*/
@@ -163,24 +163,25 @@ static const struct Interval _pango_Emoji_table[] =
{0x1F680, 0x1F6C5},
{0x1F6CB, 0x1F6D2},
{0x1F6D5, 0x1F6D7},
- {0x1F6E0, 0x1F6E5},
+ {0x1F6DD, 0x1F6E5},
{0x1F6E9, 0x1F6E9},
{0x1F6EB, 0x1F6EC},
{0x1F6F0, 0x1F6F0},
{0x1F6F3, 0x1F6FC},
{0x1F7E0, 0x1F7EB},
+ {0x1F7F0, 0x1F7F0},
{0x1F90C, 0x1F93A},
{0x1F93C, 0x1F945},
- {0x1F947, 0x1F978},
- {0x1F97A, 0x1F9CB},
- {0x1F9CD, 0x1F9FF},
+ {0x1F947, 0x1F9FF},
{0x1FA70, 0x1FA74},
- {0x1FA78, 0x1FA7A},
+ {0x1FA78, 0x1FA7C},
{0x1FA80, 0x1FA86},
- {0x1FA90, 0x1FAA8},
- {0x1FAB0, 0x1FAB6},
- {0x1FAC0, 0x1FAC2},
- {0x1FAD0, 0x1FAD6},
+ {0x1FA90, 0x1FAAC},
+ {0x1FAB0, 0x1FABA},
+ {0x1FAC0, 0x1FAC5},
+ {0x1FAD0, 0x1FAD9},
+ {0x1FAE0, 0x1FAE7},
+ {0x1FAF0, 0x1FAF6},
};
static const struct Interval _pango_Emoji_Presentation_table[] =
@@ -251,21 +252,23 @@ static const struct Interval _pango_Emoji_Presentation_table[] =
{0x1F6CC, 0x1F6CC},
{0x1F6D0, 0x1F6D2},
{0x1F6D5, 0x1F6D7},
+ {0x1F6DD, 0x1F6DF},
{0x1F6EB, 0x1F6EC},
{0x1F6F4, 0x1F6FC},
{0x1F7E0, 0x1F7EB},
+ {0x1F7F0, 0x1F7F0},
{0x1F90C, 0x1F93A},
{0x1F93C, 0x1F945},
- {0x1F947, 0x1F978},
- {0x1F97A, 0x1F9CB},
- {0x1F9CD, 0x1F9FF},
+ {0x1F947, 0x1F9FF},
{0x1FA70, 0x1FA74},
- {0x1FA78, 0x1FA7A},
+ {0x1FA78, 0x1FA7C},
{0x1FA80, 0x1FA86},
- {0x1FA90, 0x1FAA8},
- {0x1FAB0, 0x1FAB6},
- {0x1FAC0, 0x1FAC2},
- {0x1FAD0, 0x1FAD6},
+ {0x1FA90, 0x1FAAC},
+ {0x1FAB0, 0x1FABA},
+ {0x1FAC0, 0x1FAC5},
+ {0x1FAD0, 0x1FAD9},
+ {0x1FAE0, 0x1FAE7},
+ {0x1FAF0, 0x1FAF6},
};
static const struct Interval _pango_Emoji_Modifier_table[] =
@@ -313,6 +316,8 @@ static const struct Interval _pango_Emoji_Modifier_Base_table[] =
{0x1F9BB, 0x1F9BB},
{0x1F9CD, 0x1F9CF},
{0x1F9D1, 0x1F9DD},
+ {0x1FAC3, 0x1FAC5},
+ {0x1FAF0, 0x1FAF6},
};
static const struct Interval _pango_Extended_Pictographic_table[] =
diff --git a/tests/GraphemeBreakTest.txt b/tests/GraphemeBreakTest.txt
index 5baf292a..eff2fd33 100644
--- a/tests/GraphemeBreakTest.txt
+++ b/tests/GraphemeBreakTest.txt
@@ -1,6 +1,6 @@
-# GraphemeBreakTest-13.0.0.txt
-# Date: 2019-11-15, 19:49:10 GMT
-# © 2019 Unicode®, Inc.
+# GraphemeBreakTest-14.0.0.txt
+# Date: 2021-03-08, 06:22:32 GMT
+# © 2021 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/tests/SentenceBreakTest.txt b/tests/SentenceBreakTest.txt
index 5ae1f881..61ea42cf 100644
--- a/tests/SentenceBreakTest.txt
+++ b/tests/SentenceBreakTest.txt
@@ -1,6 +1,6 @@
-# SentenceBreakTest-13.0.0.txt
-# Date: 2019-11-20, 22:27:22 GMT
-# © 2019 Unicode®, Inc.
+# SentenceBreakTest-14.0.0.txt
+# Date: 2021-03-08, 06:22:40 GMT
+# © 2021 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/tests/WordBreakTest.txt b/tests/WordBreakTest.txt
index 3e85759b..1d1435bf 100644
--- a/tests/WordBreakTest.txt
+++ b/tests/WordBreakTest.txt
@@ -1,6 +1,6 @@
-# WordBreakTest-13.0.0.txt
-# Date: 2019-11-20, 22:27:23 GMT
-# © 2019 Unicode®, Inc.
+# WordBreakTest-14.0.0.txt
+# Date: 2021-03-08, 06:22:40 GMT
+# © 2021 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/tests/testboundaries_ucd.c b/tests/testboundaries_ucd.c
index d9f08a57..8abf0b7a 100644
--- a/tests/testboundaries_ucd.c
+++ b/tests/testboundaries_ucd.c
@@ -273,7 +273,7 @@ do_test (const gchar *filename,
if (num_attrs > 0)
{
- PangoLogAttr *attrs = g_new (PangoLogAttr, num_attrs);
+ PangoLogAttr *attrs = g_new0 (PangoLogAttr, num_attrs);
pango_get_log_attrs (string, -1, 0, pango_language_from_string ("C"), attrs, num_attrs);
if (! attrs_equal (attrs, expected_attrs, num_attrs, bits))