Handle regional indicators and emoji modifiers in a better way, GitHub

issue 3998.
This commit is contained in:
nicm
2025-11-01 16:44:24 +00:00
parent 8cb2805eb7
commit d90b414223
4 changed files with 117 additions and 68 deletions

52
utf8.c
View File

@@ -56,32 +56,32 @@ static struct utf8_width_item utf8_default_width_cache[] = {
{ .wc = 0x0270B, .width = 2 },
{ .wc = 0x0270C, .width = 2 },
{ .wc = 0x0270D, .width = 2 },
{ .wc = 0x1F1E6, .width = 2 },
{ .wc = 0x1F1E7, .width = 2 },
{ .wc = 0x1F1E8, .width = 2 },
{ .wc = 0x1F1E9, .width = 2 },
{ .wc = 0x1F1EA, .width = 2 },
{ .wc = 0x1F1EB, .width = 2 },
{ .wc = 0x1F1EC, .width = 2 },
{ .wc = 0x1F1ED, .width = 2 },
{ .wc = 0x1F1EE, .width = 2 },
{ .wc = 0x1F1EF, .width = 2 },
{ .wc = 0x1F1F0, .width = 2 },
{ .wc = 0x1F1F1, .width = 2 },
{ .wc = 0x1F1F2, .width = 2 },
{ .wc = 0x1F1F3, .width = 2 },
{ .wc = 0x1F1F4, .width = 2 },
{ .wc = 0x1F1F5, .width = 2 },
{ .wc = 0x1F1F6, .width = 2 },
{ .wc = 0x1F1F7, .width = 2 },
{ .wc = 0x1F1F8, .width = 2 },
{ .wc = 0x1F1F9, .width = 2 },
{ .wc = 0x1F1FA, .width = 2 },
{ .wc = 0x1F1FB, .width = 2 },
{ .wc = 0x1F1FC, .width = 2 },
{ .wc = 0x1F1FD, .width = 2 },
{ .wc = 0x1F1FE, .width = 2 },
{ .wc = 0x1F1FF, .width = 2 },
{ .wc = 0x1F1E6, .width = 1 },
{ .wc = 0x1F1E7, .width = 1 },
{ .wc = 0x1F1E8, .width = 1 },
{ .wc = 0x1F1E9, .width = 1 },
{ .wc = 0x1F1EA, .width = 1 },
{ .wc = 0x1F1EB, .width = 1 },
{ .wc = 0x1F1EC, .width = 1 },
{ .wc = 0x1F1ED, .width = 1 },
{ .wc = 0x1F1EE, .width = 1 },
{ .wc = 0x1F1EF, .width = 1 },
{ .wc = 0x1F1F0, .width = 1 },
{ .wc = 0x1F1F1, .width = 1 },
{ .wc = 0x1F1F2, .width = 1 },
{ .wc = 0x1F1F3, .width = 1 },
{ .wc = 0x1F1F4, .width = 1 },
{ .wc = 0x1F1F5, .width = 1 },
{ .wc = 0x1F1F6, .width = 1 },
{ .wc = 0x1F1F7, .width = 1 },
{ .wc = 0x1F1F8, .width = 1 },
{ .wc = 0x1F1F9, .width = 1 },
{ .wc = 0x1F1FA, .width = 1 },
{ .wc = 0x1F1FB, .width = 1 },
{ .wc = 0x1F1FC, .width = 1 },
{ .wc = 0x1F1FD, .width = 1 },
{ .wc = 0x1F1FE, .width = 1 },
{ .wc = 0x1F1FF, .width = 1 },
{ .wc = 0x1F385, .width = 2 },
{ .wc = 0x1F3C2, .width = 2 },
{ .wc = 0x1F3C3, .width = 2 },