# HG changeset patch # User Bram Moolenaar # Date 1664130603 -7200 # Node ID 3ee335235412ad21853b7e13a1cfa71ad165a102 # Parent f77c240eb5fceec3cc05817683b61e3eda1571aa patch 9.0.0587: Unicode tables are outdated Commit: https://github.com/vim/vim/commit/9882e9ddc90abf522809dba4d9fa4de24c74df74 Author: Christian Brabandt 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) diff --git a/runtime/tools/unicode.vim b/runtime/tools/unicode.vim --- 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() diff --git a/src/mbyte.c b/src/mbyte.c --- 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}, diff --git a/src/version.c b/src/version.c --- 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,