• Show log

    Commit

  • Hash : 02a0e123
    Author : Bruno Haible
    Date : 2024-09-13T15:17:49

    Update to Unicode 16.0.0.
    
    * lib/gen-uni-tables.c (PROP_MODIFIER_COMBINING_MARK): New enum item.
    (fill_properties): Recognize property Modifier_Combining_Mark.
    (UC_JOINING_GROUP_KASHMIRI_YEH): New enum item.
    (fill_arabicshaping, joining_group_as_c_identifier): Handle
    UC_JOINING_GROUP_KASHMIRI_YEH.
    (LBP_*): Split LBP_AL into LBP_AL1 and LBP_AL2.
    (LBP_AL): New enum item.
    (get_lbea): New function.
    (get_lbp): Use it. Update such that unilbrk/lbrkprop.txt comes out as
    expected. Map U+25CC to LBP_AL2.
    (PROP_EA, PROP, EA): New macros.
    (debug_output_lbp): Print either LBP_AL1, LBP_AL2 as LBP_AL.
    (lbp_value_to_string): Handle LBP_AL1, LBP_AL2 instead of LBP_AL.
    (struct lbpea_table): Renamed from struct lbp_table.
    (output_lbpea): Renamed from output_lbp. Store both the line break
    property and the line break EastAsian bit in the same table entry.
    (output_lbrk_tables): Update.
    (output_lbrk_rules_as_tables): Update for LBP_AL change. Implement rules
    LB28a, LB25, LB19, LB15d, LB13 as specified by
    https://www.unicode.org/reports/tr14/tr14-53.html.
    (get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
    
    * lib/unictype.in.h (UC_JOINING_GROUP_KASHMIRI_YEH): New enum item.
    * lib/unictype/joininggroup_byname.gperf: Handle it.
    * lib/unictype/joininggroup_name.h: Likewise.
    
    * lib/unilbrk/lbrktables.h: Split LBP_AL into LBP_AL1 and LBP_AL2.
    (LBP_AKLS_VI): New enum item, for rule LB28a.
    (PROP, EA, PROP_EA): New macros.
    (unilbrk_table): Update bounds.
    * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
    Use LBP_AL1 instead of LBP_AL. Use 2 characters of lookahead, for rules
    LB15c, LB19a, LB25, LB28a. New variables prev_ea, prev2_ea, for rule
    LB19a. New variable prev_initial_hyphen, for rule LB20a. New variable
    prev_nus, for rule LB25. Implement rules LB15c, LB19a, LB20a, LB21a,
    LB25, LB28a,  as specified by
    https://www.unicode.org/reports/tr14/tr14-53.html.
    * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
    Likewise.
    * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
    Likewise.
    * modules/unilbrk/base (Depends-on): Add stdbool.
    
    * tests/uninorm/test-u32-normalize-big.h
    (struct normalization_test_file): Now 6 parts.
    * tests/uninorm/test-u32-normalize-big.c (read_normalization_test_file):
    Fill in 6 parts.
    (test_specific, free_normalization_test_file): Now handle 6 parts.
    
    * 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.
    
    * All the affected modules: Bump required libunistring version.