diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2025-03-25 19:08:19 +0100 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2025-03-25 19:08:19 +0100 |
commit | b31bb20666c1563ec80788aa16beb4867f030712 (patch) | |
tree | 679b8208935249f0351bf58bc0108f47b759cf13 /unicode_gen.c | |
parent | 29630bcea6854123574f5c5d0bc18f479bac3f3e (diff) | |
download | quickjs-b31bb20666c1563ec80788aa16beb4867f030712.tar.gz quickjs-b31bb20666c1563ec80788aa16beb4867f030712.zip |
updated to unicode 16.0.0 (bnoordhuis) - updated test262
Diffstat (limited to 'unicode_gen.c')
-rw-r--r-- | unicode_gen.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/unicode_gen.c b/unicode_gen.c index 4f38052..0f11ef8 100644 --- a/unicode_gen.c +++ b/unicode_gen.c @@ -625,7 +625,7 @@ void parse_derived_core_properties(const char *filename) p++; p += strspn(p, " \t"); q = buf; - while (*p != '\0' && *p != ' ' && *p != '#' && *p != '\t') { + while (*p != '\0' && *p != ' ' && *p != '#' && *p != '\t' && *p != ';') { if ((q - buf) < sizeof(buf) - 1) *q++ = *p; p++; @@ -1117,6 +1117,24 @@ void find_run_type(TableEntry *te, CCInfo *tab, int code) te->ext_data[1] = ci->u_data[1]; te->ext_data[2] = ci->u_data[2]; te->ext_len = 3; + } else if (ci->u_len == 2 && ci->l_len == 0 && ci->f_len == 1) { + // U+FB05 LATIN SMALL LIGATURE LONG S T + assert(code == 0xFB05); + te->len = 1; + te->type = RUN_TYPE_UF_EXT2; + te->ext_data[0] = ci->u_data[0]; + te->ext_data[1] = ci->u_data[1]; + te->ext_len = 2; + } else if (ci->u_len == 3 && ci->l_len == 0 && ci->f_len == 1) { + // U+1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA or + // U+1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA + assert(code == 0x1FD3 || code == 0x1FE3); + te->len = 1; + te->type = RUN_TYPE_UF_EXT3; + te->ext_data[0] = ci->u_data[0]; + te->ext_data[1] = ci->u_data[1]; + te->ext_data[2] = ci->u_data[2]; + te->ext_len = 3; } else { printf("unsupported encoding case:\n"); dump_cc_info(ci, code); |