grapheme_character_isbreak.3 (1872B)
1 .Dd 2021-12-18 2 .Dt GRAPHEME_CHARACTER_ISBREAK 3 3 .Os suckless.org 4 .Sh NAME 5 .Nm grapheme_character_isbreak 6 .Nd test for a grapheme cluster break between two codepoints 7 .Sh SYNOPSIS 8 .In grapheme.h 9 .Ft size_t 10 .Fn grapheme_character_isbreak "uint_least32_t cp1" "uint_least32_t cp2" "GRAPHEME_STATE *state" 11 .Sh DESCRIPTION 12 The 13 .Fn grapheme_character_isbreak 14 function determines if there is a grapheme cluster break (see 15 .Xr libgrapheme 7 ) 16 between the two codepoints 17 .Va cp1 18 and 19 .Va cp2 . 20 By specification this decision depends on a 21 .Va state 22 that can at most be completely reset after detecting a break and must 23 be reset every time one deviates from sequential processing. 24 .Pp 25 If 26 .Va state 27 is 28 .Dv NULL 29 .Fn grapheme_character_isbreak 30 behaves as if it was called with a fully reset state. 31 .Sh RETURN VALUES 32 The 33 .Fn grapheme_character_isbreak 34 function returns 35 .Va true 36 if there is a grapheme cluster break between the codepoints 37 .Va cp1 38 and 39 .Va cp2 40 and 41 .Va false 42 if there is not. 43 .Sh EXAMPLES 44 .Bd -literal 45 /* cc (-static) -o example example.c -lgrapheme */ 46 #include <grapheme.h> 47 #include <stdint.h> 48 #include <stdio.h> 49 #include <stdlib.h> 50 51 int 52 main(void) 53 { 54 GRAPHEME_STATE state = { 0 }; 55 uint_least32_t s1[] = ..., s2[] = ...; /* two input arrays */ 56 size_t i; 57 58 for (i = 0; i + 1 < sizeof(s1) / sizeof(*s1); i++) { 59 if (grapheme_character_isbreak(s[i], s[i + 1], &state)) { 60 printf("break in s1 at offset %zu\n", i); 61 } 62 } 63 memset(&state, 0, sizeof(state)); /* reset state */ 64 for (i = 0; i + 1 < sizeof(s2) / sizeof(*s2); i++) { 65 if (grapheme_character_isbreak(s[i], s[i + 1], &state)) { 66 printf("break in s2 at offset %zu\n", i); 67 } 68 } 69 70 return 0; 71 } 72 .Ed 73 .Sh SEE ALSO 74 .Xr grapheme_character_nextbreak 3 , 75 .Xr libgrapheme 7 76 .Sh STANDARDS 77 .Fn grapheme_character_isbreak 78 is compliant with the Unicode 14.0.0 specification. 79 .Sh AUTHORS 80 .An Laslo Hunhold Aq Mt dev@frign.de