diff options
author | Bruno Haible <bruno@clisp.org> | 2021-12-29 09:12:34 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2021-12-29 09:13:12 +0100 |
commit | ad814f4ddc420d5a05dc489c7c8086fe29d76ecb (patch) | |
tree | 0c6720197123c3d41fde8ada450398917652c3b0 /tests | |
parent | a2c2b549a759952349baaffcaa37caa647d59e71 (diff) | |
download | gnulib-ad814f4ddc420d5a05dc489c7c8086fe29d76ecb.tar.gz |
unilbrk: Update handling of Hebrew letter + hyphen for Unicode 10.0.0.
* lib/unilbrk/lbrktables.h (LBP_HL_BA): New enum value.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Add
code for handling break-after character after Hebrew letter.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test
regarding break-after character after Hebrew letter.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unilbrk/test-u16-possible-linebreaks.c | 17 | ||||
-rw-r--r-- | tests/unilbrk/test-u32-possible-linebreaks.c | 17 | ||||
-rw-r--r-- | tests/unilbrk/test-u8-possible-linebreaks.c | 17 |
3 files changed, 51 insertions, 0 deletions
diff --git a/tests/unilbrk/test-u16-possible-linebreaks.c b/tests/unilbrk/test-u16-possible-linebreaks.c index 87d712fcc6..fedaa9d842 100644 --- a/tests/unilbrk/test-u16-possible-linebreaks.c +++ b/tests/unilbrk/test-u16-possible-linebreaks.c @@ -179,5 +179,22 @@ main () free (p); } + /* Test special behaviour of hyphen/break-after character after + Hebrew letter. */ + { + static const uint16_t input[10] = /* "ab-אב-αβ-ω" */ + { 'a', 'b', '-', 0x05D0, 0x05D1, '-', 0x03B1, 0x03B2, '-', 0x03C9 }; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p); + for (i = 0; i < 10; i++) + { + ASSERT (p[i] == (i == 3 || i == 9 ? UC_BREAK_POSSIBLE : + UC_BREAK_PROHIBITED)); + } + free (p); + } + return 0; } diff --git a/tests/unilbrk/test-u32-possible-linebreaks.c b/tests/unilbrk/test-u32-possible-linebreaks.c index c140ca3b55..1d8dfb122b 100644 --- a/tests/unilbrk/test-u32-possible-linebreaks.c +++ b/tests/unilbrk/test-u32-possible-linebreaks.c @@ -179,5 +179,22 @@ main () free (p); } + /* Test special behaviour of hyphen/break-after character after + Hebrew letter. */ + { + static const uint32_t input[10] = /* "ab-אב-αβ-ω" */ + { 'a', 'b', '-', 0x05D0, 0x05D1, '-', 0x03B1, 0x03B2, '-', 0x03C9 }; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p); + for (i = 0; i < 10; i++) + { + ASSERT (p[i] == (i == 3 || i == 9 ? UC_BREAK_POSSIBLE : + UC_BREAK_PROHIBITED)); + } + free (p); + } + return 0; } diff --git a/tests/unilbrk/test-u8-possible-linebreaks.c b/tests/unilbrk/test-u8-possible-linebreaks.c index 0fdb66d367..cad7b7afa3 100644 --- a/tests/unilbrk/test-u8-possible-linebreaks.c +++ b/tests/unilbrk/test-u8-possible-linebreaks.c @@ -164,5 +164,22 @@ main () free (p); } + /* Test special behaviour of hyphen/break-after character after + Hebrew letter. */ + { + static const uint8_t input[15] = /* "ab-אב-αβ-ω" */ + "ab-\327\220\327\221-\316\261\316\262-\317\211"; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p); + for (i = 0; i < 15; i++) + { + ASSERT (p[i] == (i == 3 || i == 13 ? UC_BREAK_POSSIBLE : + UC_BREAK_PROHIBITED)); + } + free (p); + } + return 0; } |