Branch
Hash :
c63a0c67
Author :
Date :
2025-09-24T23:28:18
Update to Unicode 17.0.0. * lib/gen-uni-tables.c (is_property_alphabetic): Add three YANGQIN SIGNs. (UC_JOINING_GROUP_THIN_NOON): New enum item. (fill_arabicshaping, joining_group_as_c_identifier): Handle UC_JOINING_GROUP_THIN_NOON. (LBP_*): Split LBP_SA into LBP_SA1 and LBP_SA2. (LBP_HH, LBP_SA): New enum items. (get_lbp): Use them. Update such that unilbrk/lbrkprop.txt comes out as expected. (debug_output_lbp): Handle LBP_HH. Print either LBP_SA1, LBP_SA2 as LBP_SA. (fill_org_lbp, debug_output_org_lbp): Handle LBP_HH. (lbp_value_to_string): Handle LBP_HH. Handle LBP_SA1, LBP_SA2 instead of LBP_SA. (output_lbrk_rules_as_tables): Update for LBP_HH change. Update rules LBP12a, LB21 as specified by https://www.unicode.org/reports/tr14/tr14-55.html. (get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected. * lib/unictype.in.h (UC_JOINING_GROUP_THIN_NOON): New enum item. * lib/unictype/joininggroup_byname.gperf: Handle it. * lib/unictype/joininggroup_name.h: Likewise. * lib/unilbrk/lbrktables.h (LBP_*): Split LBP_SA into LBP_SA1 and LBP_SA2. (LBP_HH): New enum item. (unilbrk_table): Update bounds. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Use LBP_HL_HY instead of LBP_HL_BA. Use LBP_SA1 instead of LBP_SA. Treat LBP_SA2 like LBP_CM. Update rules LB20a and LB21a, as specified by https://www.unicode.org/reports/tr14/tr14-55.html. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop): Likewise. * tests/unigbrk/test-u8-grapheme-breaks.c (main): Use U+2B50 instead of U+2605, because U+2605 no longer is an Extended_Pictographic character. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u8-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u16-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u8-grapheme-prev.c (main): Likewise. * tests/unigbrk/test-u16-grapheme-prev.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-prev.c (main): Likewise. * tests/uniwidth/test-uc_width2.sh: Update expected test result. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * tests/unilbrk/LineBreakTest.txt: Update. * All the affected modules: Bump required libunistring version.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* Table that encodes several line breaking rules. */
/* Generated automatically by gen-uni-tables.c for Unicode 17.0.0. */
/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
You can redistribute it and/or modify it under either
- the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3, or (at your
option) any later version, or
- the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version, or
- the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License and the GNU General Public License
for more details.
You should have received a copy of the GNU Lesser General Public
License and of the GNU General Public License along with this
program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Specification. */
#include "unilbrk/lbrktables.h"
/* Define unilbrkprop, table of line breaking properties. */
#include "unilbrk/lbrkprop2.h"
const unsigned char unilbrk_table[43][43] =
{
/* after */
/* WJ GL B2 BA BB HH HY CL CP1 CP2 EX IN NS OP1 OP2 QU1 QU2 QU3 IS NU PO PR SY AL1 AL2 H2 H3 ID EBF JL JV JT HL AP AK AS VI VF RI SA2 ZWJ EB EM */
/* WJ */ { P, I, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
/* GL */ { P, I, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
/* B2 */ { P, I, P, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* BA */ { P, D, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* BB */ { P, I, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
/* HH */ { P, D, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* HY */ { P, D, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* CL */ { P, I, D, I, D, I, I, P, P, P, P, I, P, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* CP1 */ { P, I, D, I, D, I, I, P, P, P, P, I, P, D, D, I, D, P, P, I, D, D, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* CP2 */ { P, I, D, I, D, I, I, P, P, P, P, I, P, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* EX */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* IN */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* NS */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* OP1 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
/* OP2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
/* QU1 */ { P, I, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
/* QU2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
/* QU3 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* IS */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, I, D, D, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* NU */ { P, I, D, I, D, I, I, P, P, P, P, I, I, I, D, I, D, P, P, D, D, D, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* PO */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, I, D, D, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* PR */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, I, D, D, P, I, I, I, I, I, I, I, I, I, I, D, D, D, D, D, D, D, I, I, I, },
/* SY */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, D, },
/* AL1 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, I, D, I, D, P, P, I, I, I, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* AL2 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, I, D, I, D, P, P, I, I, I, P, I, I, D, D, D, D, D, D, D, I, D, D, D, I, I, D, D, I, D, D, },
/* H2 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, I, I, D, D, D, D, D, D, D, D, D, D, D, },
/* H3 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, D, D, },
/* ID */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* EBF */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, I, },
/* JL */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, I, I, D, D, I, I, D, D, D, D, D, D, D, D, D, D, D, D, },
/* JV */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, I, I, D, D, D, D, D, D, D, D, D, D, D, },
/* JT */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, D, D, },
/* HL */ { P, I, D, I, D, I, I, P, P, P, P, I, I, I, D, I, D, P, P, I, I, I, P, I, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, I, D, D, },
/* AP */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, I, D, D, D, D, D, D, D, D, D, I, I, D, D, D, D, D, D, D, },
/* AK */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, I, I, D, D, D, D, D, },
/* AS */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, I, I, D, D, D, D, D, },
/* VI */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* VF */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* RI */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* SA2 */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* ZWJ */ { P, I, D, I, D, I, I, P, P, P, P, I, I, I, D, I, D, P, P, I, I, I, P, I, I, D, D, I, I, D, D, D, I, D, D, D, D, D, D, D, I, I, I, },
/* EB */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, I, },
/* EM */ { P, I, D, I, D, I, I, P, P, P, P, I, I, D, D, I, D, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* "" */
/* before */
};