+2021-12-28 Bruno Haible <bruno@clisp.org>
+
+ unigbrk: Simplify code for regional indicators.
+ * lib/unigbrk/u-grapheme-breaks.h (FUNC): Make code for regional
+ indicators more future-proof.
+ * tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test of regional
+ indicators.
+ * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
+ * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
+
2021-12-28 Paul Eggert <eggert@cs.ucla.edu>
clock_getres: document portability issues better
/* *p = 0 */;
/* No break between RI if there is an odd number of RI
characters before (GB12, GB13). */
- else if (prop == GBP_RI)
- {
- if (ri_count % 2 == 0)
- *p = 1;
- /* else *p = 0; */
- }
+ else if (prop == GBP_RI && (ri_count % 2) != 0)
+ /* *p = 0 */;
/* Break everywhere (GB999). */
else
*p = 1;
test_u16_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1);
test_u16_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1);
+ /* Regional indicators. */
+ test_u16_grapheme_breaks ("##___#___#",
+ '.', 0xD83C, 0xDDE9, 0xD83C, 0xDDEA, 0xD83C, 0xDDEB, 0xD83C, 0xDDF7, '.',
+ -1);
+
return 0;
}
test_u32_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1);
test_u32_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1);
+ /* Regional indicators. */
+ test_u32_grapheme_breaks ("##_#_#",
+ '.', 0x1F1E9, 0x1F1EA, 0x1F1EB, 0x1F1F7, '.',
+ -1);
+
return 0;
}
test_u8_grapheme_breaks ("e"ACUTE"x", "#__#");
test_u8_grapheme_breaks ("e"ACUTE "e"ACUTE, "#__#__");
+ /* Regional indicators. */
+ test_u8_grapheme_breaks (".\360\237\207\251\360\237\207\252\360\237\207\253\360\237\207\267.",
+ "##_______#_______#");
+
return 0;
}