diff options
author | Bruno Haible <bruno@clisp.org> | 2021-12-29 19:54:46 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2021-12-29 19:54:46 +0100 |
commit | 5209414e95ed830b8b687ae71be8911ef0969e3e (patch) | |
tree | 2e19a28e455e6c5178ffe44f25651c96e4e5b7eb /ChangeLog | |
parent | cf1af53c980a5683c379cc7352f75d72e5dbe0f4 (diff) | |
download | gnulib-5209414e95ed830b8b687ae71be8911ef0969e3e.tar.gz |
unilbrk: Improve support for strings that contain CR-LF sequences.
* lib/gen-uni-tables.c (LBP_CR, LBP_LF): New enum values.
(get_lbp): For '\r' and '\n', return LBP_CR and LBP_LF, respectively,
instead of LBP_BK.
(debug_output_lbp, fill_org_lbp, debug_output_org_lbp,
lbp_value_to_string): Handle LBP_CR, LBP_LF.
* lib/unilbrk/lbrkprop2.h: Regenerated.
* lib/unilbrk/lbrktables.h (LBP_CR, LBP_LF): New enum values.
* lib/unilbrk.in.h (UC_BREAK_CR_BEFORE_LF): New enum value.
(u8_possible_linebreaks, u16_possible_linebreaks,
u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks,
u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks):
Declare also a _v2 variant, and use a C macro to activate it by default.
* lib/unilbrk/internal.h: New file.
* lib/unilbrk/u8-possible-linebreaks.c: Include unilbrk/internal.h.
(u8_possible_linebreaks_loop): Renamed from u8_possible_linebreaks. Add
'cr' parameter.
(u8_possible_linebreaks, u8_possible_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u16-possible-linebreaks.c: Include unilbrk/internal.h.
(u16_possible_linebreaks_loop): Renamed from u16_possible_linebreaks.
Add 'cr' parameter.
(u16_possible_linebreaks, u16_possible_linebreaks_v2): New functions.
* lib/unilbrk/u32-possible-linebreaks.c: Include unilbrk/internal.h.
(u32_possible_linebreaks_loop): Renamed from u32_possible_linebreaks.
Add 'cr' parameter.
(u32_possible_linebreaks, u32_possible_linebreaks_v2): New functions.
* lib/unilbrk/ulc-possible-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(ulc_possible_linebreaks_internal): Renamed from
ulc_possible_linebreaks. Add 'cr' parameter.
(ulc_possible_linebreaks, ulc_possible_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u8-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u8_width_linebreaks_internal): Renamed from u8_width_linebreaks. Add
'cr' parameter.
(u8_width_linebreaks, u8_width_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u16-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u16_width_linebreaks_internal): Renamed from u16_width_linebreaks. Add
'cr' parameter.
(u16_width_linebreaks, u16_width_linebreaks_v2): New functions.
* lib/unilbrk/u32-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u32_width_linebreaks_internal): Renamed from u32_width_linebreaks. Add
'cr' parameter.
(u32_width_linebreaks, u32_width_linebreaks_v2): New functions.
* lib/unilbrk/ulc-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(ulc_width_linebreaks_internal): Renamed from ulc_width_linebreaks. Add
'cr' parameter.
(ulc_width_linebreaks, ulc_width_linebreaks_v2): New functions.
(main): Update.
* modules/unilbrk/u8-possible-linebreaks (Files): Add
lib/unilbrk/internal.h.
* modules/unilbrk/u16-possible-linebreaks (Files): Likewise.
* modules/unilbrk/u32-possible-linebreaks (Files): Likewise.
* modules/unilbrk/u8-width-linebreaks (Files): Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-u16-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-u32-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-ulc-possible-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u8-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u16-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u32-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-ulc-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 87 |
1 files changed, 87 insertions, 0 deletions
@@ -1,5 +1,92 @@ 2021-12-29 Bruno Haible <bruno@clisp.org> + unilbrk: Improve support for strings that contain CR-LF sequences. + * lib/gen-uni-tables.c (LBP_CR, LBP_LF): New enum values. + (get_lbp): For '\r' and '\n', return LBP_CR and LBP_LF, respectively, + instead of LBP_BK. + (debug_output_lbp, fill_org_lbp, debug_output_org_lbp, + lbp_value_to_string): Handle LBP_CR, LBP_LF. + * lib/unilbrk/lbrkprop2.h: Regenerated. + * lib/unilbrk/lbrktables.h (LBP_CR, LBP_LF): New enum values. + * lib/unilbrk.in.h (UC_BREAK_CR_BEFORE_LF): New enum value. + (u8_possible_linebreaks, u16_possible_linebreaks, + u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks, + u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks): + Declare also a _v2 variant, and use a C macro to activate it by default. + * lib/unilbrk/internal.h: New file. + * lib/unilbrk/u8-possible-linebreaks.c: Include unilbrk/internal.h. + (u8_possible_linebreaks_loop): Renamed from u8_possible_linebreaks. Add + 'cr' parameter. + (u8_possible_linebreaks, u8_possible_linebreaks_v2): New functions. + (main): Update. + * lib/unilbrk/u16-possible-linebreaks.c: Include unilbrk/internal.h. + (u16_possible_linebreaks_loop): Renamed from u16_possible_linebreaks. + Add 'cr' parameter. + (u16_possible_linebreaks, u16_possible_linebreaks_v2): New functions. + * lib/unilbrk/u32-possible-linebreaks.c: Include unilbrk/internal.h. + (u32_possible_linebreaks_loop): Renamed from u32_possible_linebreaks. + Add 'cr' parameter. + (u32_possible_linebreaks, u32_possible_linebreaks_v2): New functions. + * lib/unilbrk/ulc-possible-linebreaks.c: Include unilbrk/internal.h, + unilbrk/lbrktables.h. + (ulc_possible_linebreaks_internal): Renamed from + ulc_possible_linebreaks. Add 'cr' parameter. + (ulc_possible_linebreaks, ulc_possible_linebreaks_v2): New functions. + (main): Update. + * lib/unilbrk/u8-width-linebreaks.c: Include unilbrk/internal.h, + unilbrk/lbrktables.h. + (u8_width_linebreaks_internal): Renamed from u8_width_linebreaks. Add + 'cr' parameter. + (u8_width_linebreaks, u8_width_linebreaks_v2): New functions. + (main): Update. + * lib/unilbrk/u16-width-linebreaks.c: Include unilbrk/internal.h, + unilbrk/lbrktables.h. + (u16_width_linebreaks_internal): Renamed from u16_width_linebreaks. Add + 'cr' parameter. + (u16_width_linebreaks, u16_width_linebreaks_v2): New functions. + * lib/unilbrk/u32-width-linebreaks.c: Include unilbrk/internal.h, + unilbrk/lbrktables.h. + (u32_width_linebreaks_internal): Renamed from u32_width_linebreaks. Add + 'cr' parameter. + (u32_width_linebreaks, u32_width_linebreaks_v2): New functions. + * lib/unilbrk/ulc-width-linebreaks.c: Include unilbrk/internal.h, + unilbrk/lbrktables.h. + (ulc_width_linebreaks_internal): Renamed from ulc_width_linebreaks. Add + 'cr' parameter. + (ulc_width_linebreaks, ulc_width_linebreaks_v2): New functions. + (main): Update. + * modules/unilbrk/u8-possible-linebreaks (Files): Add + lib/unilbrk/internal.h. + * modules/unilbrk/u16-possible-linebreaks (Files): Likewise. + * modules/unilbrk/u32-possible-linebreaks (Files): Likewise. + * modules/unilbrk/u8-width-linebreaks (Files): Likewise. + * tests/unilbrk/test-u8-possible-linebreaks.c (test_function): New + function, extracted from main. Add a test of CR-LF handling. + (main): Invoke it twice. + * tests/unilbrk/test-u16-possible-linebreaks.c (test_function): New + function, extracted from main. Add a test of CR-LF handling. + (main): Invoke it twice. + * tests/unilbrk/test-u32-possible-linebreaks.c (test_function): New + function, extracted from main. Add a test of CR-LF handling. + (main): Invoke it twice. + * tests/unilbrk/test-ulc-possible-linebreaks.c (test_function): New + function, extracted from main. + (main): Invoke it twice. + * tests/unilbrk/test-u8-width-linebreaks.c (test_function): New + function, extracted from main. + (main): Invoke it twice. + * tests/unilbrk/test-u16-width-linebreaks.c (test_function): New + function, extracted from main. + (main): Invoke it twice. + * tests/unilbrk/test-u32-width-linebreaks.c (test_function): New + function, extracted from main. + (main): Invoke it twice. + * tests/unilbrk/test-ulc-width-linebreaks.c (test_function): New + function, extracted from main. + (main): Invoke it twice. + +2021-12-29 Bruno Haible <bruno@clisp.org> + uniwbrk: Add unit tests of CR-LF sequences. * tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of a string with CR-LF. |