changeset 30503:3ee335235412 v9.0.0587

patch 9.0.0587: Unicode tables are outdated Commit: https://github.com/vim/vim/commit/9882e9ddc90abf522809dba4d9fa4de24c74df74 Author: Christian Brabandt <cb@256bit.org> Date: Sun Sep 25 19:25:51 2022 +0100 patch 9.0.0587: Unicode tables are outdated Problem: Unicode tables are outdated. Solution: Update to Unicode release 15. (Christian Brabandt, closes https://github.com/vim/vim/issues/11220)
author Bram Moolenaar <Bram@vim.org>
date Sun, 25 Sep 2022 20:30:03 +0200
parents f77c240eb5fc
children a726559c0589
files runtime/tools/unicode.vim src/mbyte.c src/version.c
diffstat 3 files changed, 85 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/tools/unicode.vim
+++ b/runtime/tools/unicode.vim
@@ -462,8 +462,9 @@ let s:ambitable = []
 call BuildWidthTable('A', 'ambiguous')
 
 " Edit the emoji text file.  Requires the netrw plugin.
-edit https://unicode.org/Public/emoji/12.1/emoji-data.txt
-
-" Build the emoji table. Ver. 1.0 - 6.0
-" Must come after the "ambiguous" and "doublewidth" tables
-call BuildEmojiTable()
+" commented out, because it drops too many characters
+"edit https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt
+"
+"" Build the emoji table. Ver. 1.0 - 6.0
+"" Must come after the "ambiguous" and "doublewidth" tables
+"call BuildEmojiTable()
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -1445,8 +1445,13 @@ utf_char2cells(int c)
 	{0x17000, 0x187f7},
 	{0x18800, 0x18cd5},
 	{0x18d00, 0x18d08},
-	{0x1b000, 0x1b11e},
+	{0x1aff0, 0x1aff3},
+	{0x1aff5, 0x1affb},
+	{0x1affd, 0x1affe},
+	{0x1b000, 0x1b122},
+	{0x1b132, 0x1b132},
 	{0x1b150, 0x1b152},
+	{0x1b155, 0x1b155},
 	{0x1b164, 0x1b167},
 	{0x1b170, 0x1b2fb},
 	{0x1f004, 0x1f004},
@@ -1480,21 +1485,21 @@ utf_char2cells(int c)
 	{0x1f6cc, 0x1f6cc},
 	{0x1f6d0, 0x1f6d2},
 	{0x1f6d5, 0x1f6d7},
+	{0x1f6dc, 0x1f6df},
 	{0x1f6eb, 0x1f6ec},
 	{0x1f6f4, 0x1f6fc},
 	{0x1f7e0, 0x1f7eb},
+	{0x1f7f0, 0x1f7f0},
 	{0x1f90c, 0x1f93a},
 	{0x1f93c, 0x1f945},
-	{0x1f947, 0x1f978},
-	{0x1f97a, 0x1f9cb},
-	{0x1f9cd, 0x1f9ff},
-	{0x1fa70, 0x1fa74},
-	{0x1fa78, 0x1fa7a},
-	{0x1fa80, 0x1fa86},
-	{0x1fa90, 0x1faa8},
-	{0x1fab0, 0x1fab6},
-	{0x1fac0, 0x1fac2},
-	{0x1fad0, 0x1fad6},
+	{0x1f947, 0x1f9ff},
+	{0x1fa70, 0x1fa7c},
+	{0x1fa80, 0x1fa88},
+	{0x1fa90, 0x1fabd},
+	{0x1fabf, 0x1fac5},
+	{0x1face, 0x1fadb},
+	{0x1fae0, 0x1fae8},
+	{0x1faf0, 0x1faf8},
 	{0x20000, 0x2fffd},
 	{0x30000, 0x3fffd}
     };
@@ -2331,7 +2336,8 @@ utf_iscomposing(int c)
 	{0x0825, 0x0827},
 	{0x0829, 0x082d},
 	{0x0859, 0x085b},
-	{0x08d3, 0x08e1},
+	{0x0898, 0x089f},
+	{0x08ca, 0x08e1},
 	{0x08e3, 0x0903},
 	{0x093a, 0x093c},
 	{0x093e, 0x094f},
@@ -2373,6 +2379,7 @@ utf_iscomposing(int c)
 	{0x0bca, 0x0bcd},
 	{0x0bd7, 0x0bd7},
 	{0x0c00, 0x0c04},
+	{0x0c3c, 0x0c3c},
 	{0x0c3e, 0x0c44},
 	{0x0c46, 0x0c48},
 	{0x0c4a, 0x0c4d},
@@ -2385,6 +2392,7 @@ utf_iscomposing(int c)
 	{0x0cca, 0x0ccd},
 	{0x0cd5, 0x0cd6},
 	{0x0ce2, 0x0ce3},
+	{0x0cf3, 0x0cf3},
 	{0x0d00, 0x0d03},
 	{0x0d3b, 0x0d3c},
 	{0x0d3e, 0x0d44},
@@ -2403,7 +2411,7 @@ utf_iscomposing(int c)
 	{0x0e47, 0x0e4e},
 	{0x0eb1, 0x0eb1},
 	{0x0eb4, 0x0ebc},
-	{0x0ec8, 0x0ecd},
+	{0x0ec8, 0x0ece},
 	{0x0f18, 0x0f19},
 	{0x0f35, 0x0f35},
 	{0x0f37, 0x0f37},
@@ -2424,13 +2432,14 @@ utf_iscomposing(int c)
 	{0x108f, 0x108f},
 	{0x109a, 0x109d},
 	{0x135d, 0x135f},
-	{0x1712, 0x1714},
+	{0x1712, 0x1715},
 	{0x1732, 0x1734},
 	{0x1752, 0x1753},
 	{0x1772, 0x1773},
 	{0x17b4, 0x17d3},
 	{0x17dd, 0x17dd},
 	{0x180b, 0x180d},
+	{0x180f, 0x180f},
 	{0x1885, 0x1886},
 	{0x18a9, 0x18a9},
 	{0x1920, 0x192b},
@@ -2439,7 +2448,7 @@ utf_iscomposing(int c)
 	{0x1a55, 0x1a5e},
 	{0x1a60, 0x1a7c},
 	{0x1a7f, 0x1a7f},
-	{0x1ab0, 0x1ac0},
+	{0x1ab0, 0x1ace},
 	{0x1b00, 0x1b04},
 	{0x1b34, 0x1b44},
 	{0x1b6b, 0x1b73},
@@ -2452,8 +2461,7 @@ utf_iscomposing(int c)
 	{0x1ced, 0x1ced},
 	{0x1cf4, 0x1cf4},
 	{0x1cf7, 0x1cf9},
-	{0x1dc0, 0x1df9},
-	{0x1dfb, 0x1dff},
+	{0x1dc0, 0x1dff},
 	{0x20d0, 0x20f0},
 	{0x2cef, 0x2cf1},
 	{0x2d7f, 0x2d7f},
@@ -2505,11 +2513,16 @@ utf_iscomposing(int c)
 	{0x10ae5, 0x10ae6},
 	{0x10d24, 0x10d27},
 	{0x10eab, 0x10eac},
+	{0x10efd, 0x10eff},
 	{0x10f46, 0x10f50},
+	{0x10f82, 0x10f85},
 	{0x11000, 0x11002},
 	{0x11038, 0x11046},
+	{0x11070, 0x11070},
+	{0x11073, 0x11074},
 	{0x1107f, 0x11082},
 	{0x110b0, 0x110ba},
+	{0x110c2, 0x110c2},
 	{0x11100, 0x11102},
 	{0x11127, 0x11134},
 	{0x11145, 0x11146},
@@ -2520,6 +2533,7 @@ utf_iscomposing(int c)
 	{0x111ce, 0x111cf},
 	{0x1122c, 0x11237},
 	{0x1123e, 0x1123e},
+	{0x11241, 0x11241},
 	{0x112df, 0x112ea},
 	{0x11300, 0x11303},
 	{0x1133b, 0x1133c},
@@ -2567,6 +2581,12 @@ utf_iscomposing(int c)
 	{0x11d90, 0x11d91},
 	{0x11d93, 0x11d97},
 	{0x11ef3, 0x11ef6},
+	{0x11f00, 0x11f01},
+	{0x11f03, 0x11f03},
+	{0x11f34, 0x11f3a},
+	{0x11f3e, 0x11f42},
+	{0x13440, 0x13440},
+	{0x13447, 0x13455},
 	{0x16af0, 0x16af4},
 	{0x16b30, 0x16b36},
 	{0x16f4f, 0x16f4f},
@@ -2575,6 +2595,8 @@ utf_iscomposing(int c)
 	{0x16fe4, 0x16fe4},
 	{0x16ff0, 0x16ff1},
 	{0x1bc9d, 0x1bc9e},
+	{0x1cf00, 0x1cf2d},
+	{0x1cf30, 0x1cf46},
 	{0x1d165, 0x1d169},
 	{0x1d16d, 0x1d172},
 	{0x1d17b, 0x1d182},
@@ -2592,8 +2614,11 @@ utf_iscomposing(int c)
 	{0x1e01b, 0x1e021},
 	{0x1e023, 0x1e024},
 	{0x1e026, 0x1e02a},
+	{0x1e08f, 0x1e08f},
 	{0x1e130, 0x1e136},
+	{0x1e2ae, 0x1e2ae},
 	{0x1e2ec, 0x1e2ef},
+	{0x1e4ec, 0x1e4ef},
 	{0x1e8d0, 0x1e8d6},
 	{0x1e944, 0x1e94a},
 	{0xe0100, 0xe01ef}
@@ -2763,24 +2788,23 @@ static struct interval emoji_all[] =
     {0x1f680, 0x1f6c5},
     {0x1f6cb, 0x1f6d2},
     {0x1f6d5, 0x1f6d7},
-    {0x1f6e0, 0x1f6e5},
+    {0x1f6dc, 0x1f6e5},
     {0x1f6e9, 0x1f6e9},
     {0x1f6eb, 0x1f6ec},
     {0x1f6f0, 0x1f6f0},
     {0x1f6f3, 0x1f6fc},
     {0x1f7e0, 0x1f7eb},
+    {0x1f7f0, 0x1f7f0},
     {0x1f90c, 0x1f93a},
     {0x1f93c, 0x1f945},
-    {0x1f947, 0x1f978},
-    {0x1f97a, 0x1f9cb},
-    {0x1f9cd, 0x1f9ff},
-    {0x1fa70, 0x1fa74},
-    {0x1fa78, 0x1fa7a},
-    {0x1fa80, 0x1fa86},
-    {0x1fa90, 0x1faa8},
-    {0x1fab0, 0x1fab6},
-    {0x1fac0, 0x1fac2},
-    {0x1fad0, 0x1fad6}
+    {0x1f947, 0x1f9ff},
+    {0x1fa70, 0x1fa7c},
+    {0x1fa80, 0x1fa88},
+    {0x1fa90, 0x1fabd},
+    {0x1fabf, 0x1fac5},
+    {0x1face, 0x1fadb},
+    {0x1fae0, 0x1fae8},
+    {0x1faf0, 0x1faf8}
 };
 
 /*
@@ -3088,7 +3112,7 @@ static convertStruct foldCase[] =
 	{0x2160,0x216f,1,16},
 	{0x2183,0x2183,-1,1},
 	{0x24b6,0x24cf,1,26},
-	{0x2c00,0x2c2e,1,48},
+	{0x2c00,0x2c2f,1,48},
 	{0x2c60,0x2c60,-1,1},
 	{0x2c62,0x2c62,-1,-10743},
 	{0x2c63,0x2c63,-1,-3814},
@@ -3123,17 +3147,21 @@ static convertStruct foldCase[] =
 	{0xa7b1,0xa7b1,-1,-42282},
 	{0xa7b2,0xa7b2,-1,-42261},
 	{0xa7b3,0xa7b3,-1,928},
-	{0xa7b4,0xa7be,2,1},
-	{0xa7c2,0xa7c2,-1,1},
+	{0xa7b4,0xa7c2,2,1},
 	{0xa7c4,0xa7c4,-1,-48},
 	{0xa7c5,0xa7c5,-1,-42307},
 	{0xa7c6,0xa7c6,-1,-35384},
 	{0xa7c7,0xa7c9,2,1},
-	{0xa7f5,0xa7f5,-1,1},
+	{0xa7d0,0xa7d6,6,1},
+	{0xa7d8,0xa7f5,29,1},
 	{0xab70,0xabbf,1,-38864},
 	{0xff21,0xff3a,1,32},
 	{0x10400,0x10427,1,40},
 	{0x104b0,0x104d3,1,40},
+	{0x10570,0x1057a,1,39},
+	{0x1057c,0x1058a,1,39},
+	{0x1058c,0x10592,1,39},
+	{0x10594,0x10595,1,39},
 	{0x10c80,0x10cb2,1,64},
 	{0x118a0,0x118bf,1,32},
 	{0x16e40,0x16e5f,1,32},
@@ -3314,7 +3342,7 @@ static convertStruct toLower[] =
 	{0x2160,0x216f,1,16},
 	{0x2183,0x2183,-1,1},
 	{0x24b6,0x24cf,1,26},
-	{0x2c00,0x2c2e,1,48},
+	{0x2c00,0x2c2f,1,48},
 	{0x2c60,0x2c60,-1,1},
 	{0x2c62,0x2c62,-1,-10743},
 	{0x2c63,0x2c63,-1,-3814},
@@ -3349,16 +3377,20 @@ static convertStruct toLower[] =
 	{0xa7b1,0xa7b1,-1,-42282},
 	{0xa7b2,0xa7b2,-1,-42261},
 	{0xa7b3,0xa7b3,-1,928},
-	{0xa7b4,0xa7be,2,1},
-	{0xa7c2,0xa7c2,-1,1},
+	{0xa7b4,0xa7c2,2,1},
 	{0xa7c4,0xa7c4,-1,-48},
 	{0xa7c5,0xa7c5,-1,-42307},
 	{0xa7c6,0xa7c6,-1,-35384},
 	{0xa7c7,0xa7c9,2,1},
-	{0xa7f5,0xa7f5,-1,1},
+	{0xa7d0,0xa7d6,6,1},
+	{0xa7d8,0xa7f5,29,1},
 	{0xff21,0xff3a,1,32},
 	{0x10400,0x10427,1,40},
 	{0x104b0,0x104d3,1,40},
+	{0x10570,0x1057a,1,39},
+	{0x1057c,0x1058a,1,39},
+	{0x1058c,0x10592,1,39},
+	{0x10594,0x10595,1,39},
 	{0x10c80,0x10cb2,1,64},
 	{0x118a0,0x118bf,1,32},
 	{0x16e40,0x16e5f,1,32},
@@ -3522,7 +3554,7 @@ static convertStruct toUpper[] =
 	{0x2170,0x217f,1,-16},
 	{0x2184,0x2184,-1,-1},
 	{0x24d0,0x24e9,1,-26},
-	{0x2c30,0x2c5e,1,-48},
+	{0x2c30,0x2c5f,1,-48},
 	{0x2c61,0x2c61,-1,-1},
 	{0x2c65,0x2c65,-1,-10795},
 	{0x2c66,0x2c66,-1,-10792},
@@ -3543,14 +3575,19 @@ static convertStruct toUpper[] =
 	{0xa793,0xa793,-1,-1},
 	{0xa794,0xa794,-1,48},
 	{0xa797,0xa7a9,2,-1},
-	{0xa7b5,0xa7bf,2,-1},
-	{0xa7c3,0xa7c8,5,-1},
-	{0xa7ca,0xa7f6,44,-1},
+	{0xa7b5,0xa7c3,2,-1},
+	{0xa7c8,0xa7ca,2,-1},
+	{0xa7d1,0xa7d7,6,-1},
+	{0xa7d9,0xa7f6,29,-1},
 	{0xab53,0xab53,-1,-928},
 	{0xab70,0xabbf,1,-38864},
 	{0xff41,0xff5a,1,-32},
 	{0x10428,0x1044f,1,-40},
 	{0x104d8,0x104fb,1,-40},
+	{0x10597,0x105a1,1,-39},
+	{0x105a3,0x105b1,1,-39},
+	{0x105b3,0x105b9,1,-39},
+	{0x105bb,0x105bc,1,-39},
 	{0x10cc0,0x10cf2,1,-64},
 	{0x118c0,0x118df,1,-32},
 	{0x16e60,0x16e7f,1,-32},
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    587,
+/**/
     586,
 /**/
     585,