Blob


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