summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2021-12-29 09:12:34 +0100
committerBruno Haible <bruno@clisp.org>2021-12-29 09:13:12 +0100
commitad814f4ddc420d5a05dc489c7c8086fe29d76ecb (patch)
tree0c6720197123c3d41fde8ada450398917652c3b0 /tests
parenta2c2b549a759952349baaffcaa37caa647d59e71 (diff)
downloadgnulib-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.c17
-rw-r--r--tests/unilbrk/test-u32-possible-linebreaks.c17
-rw-r--r--tests/unilbrk/test-u8-possible-linebreaks.c17
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;
}