grapheme.h - libgrapheme - unicode string library | |
git clone git://git.suckless.org/libgrapheme | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
grapheme.h (2782B) | |
--- | |
1 /* See LICENSE file for copyright and license details. */ | |
2 #ifndef GRAPHEME_H | |
3 #define GRAPHEME_H | |
4 | |
5 #include <stdbool.h> | |
6 #include <stddef.h> | |
7 #include <stdint.h> | |
8 | |
9 #define GRAPHEME_INVALID_CODEPOINT UINT32_C(0xFFFD) | |
10 | |
11 enum grapheme_bidirectional_direction { | |
12 GRAPHEME_BIDIRECTIONAL_DIRECTION_NEUTRAL, | |
13 GRAPHEME_BIDIRECTIONAL_DIRECTION_LTR, | |
14 GRAPHEME_BIDIRECTIONAL_DIRECTION_RTL, | |
15 }; | |
16 | |
17 size_t grapheme_bidirectional_get_line_embedding_levels(const uint_least… | |
18 size_t, int_leas… | |
19 size_t); | |
20 | |
21 size_t grapheme_bidirectional_preprocess_paragraph( | |
22 const uint_least32_t *, size_t, enum grapheme_bidirectional_dire… | |
23 uint_least32_t *, size_t, enum grapheme_bidirectional_direction … | |
24 | |
25 size_t grapheme_bidirectional_reorder_line(const uint_least32_t *, | |
26 const uint_least32_t *, size_… | |
27 uint_least32_t *, size_t); | |
28 | |
29 size_t grapheme_decode_utf8(const char *, size_t, uint_least32_t *); | |
30 size_t grapheme_encode_utf8(uint_least32_t, char *, size_t); | |
31 | |
32 bool grapheme_is_character_break(uint_least32_t, uint_least32_t, | |
33 uint_least16_t *); | |
34 | |
35 bool grapheme_is_lowercase(const uint_least32_t *, size_t, size_t *); | |
36 bool grapheme_is_titlecase(const uint_least32_t *, size_t, size_t *); | |
37 bool grapheme_is_uppercase(const uint_least32_t *, size_t, size_t *); | |
38 | |
39 bool grapheme_is_lowercase_utf8(const char *, size_t, size_t *); | |
40 bool grapheme_is_titlecase_utf8(const char *, size_t, size_t *); | |
41 bool grapheme_is_uppercase_utf8(const char *, size_t, size_t *); | |
42 | |
43 size_t grapheme_next_character_break(const uint_least32_t *, size_t); | |
44 size_t grapheme_next_line_break(const uint_least32_t *, size_t); | |
45 size_t grapheme_next_sentence_break(const uint_least32_t *, size_t); | |
46 size_t grapheme_next_word_break(const uint_least32_t *, size_t); | |
47 | |
48 size_t grapheme_next_character_break_utf8(const char *, size_t); | |
49 size_t grapheme_next_line_break_utf8(const char *, size_t); | |
50 size_t grapheme_next_sentence_break_utf8(const char *, size_t); | |
51 size_t grapheme_next_word_break_utf8(const char *, size_t); | |
52 | |
53 size_t grapheme_to_lowercase(const uint_least32_t *, size_t, uint_least3… | |
54 size_t); | |
55 size_t grapheme_to_titlecase(const uint_least32_t *, size_t, uint_least3… | |
56 size_t); | |
57 size_t grapheme_to_uppercase(const uint_least32_t *, size_t, uint_least3… | |
58 size_t); | |
59 | |
60 size_t grapheme_to_lowercase_utf8(const char *, size_t, char *, size_t); | |
61 size_t grapheme_to_titlecase_utf8(const char *, size_t, char *, size_t); | |
62 size_t grapheme_to_uppercase_utf8(const char *, size_t, char *, size_t); | |
63 | |
64 #endif /* GRAPHEME_H */ |