Introduction
Introduction Statistics Contact Development Disclaimer Help
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 */
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.