util.h - libgrapheme - unicode string library | |
git clone git://git.suckless.org/libgrapheme | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
util.h (1961B) | |
--- | |
1 /* See LICENSE file for copyright and license details. */ | |
2 #ifndef UTIL_H | |
3 #define UTIL_H | |
4 | |
5 #include <stddef.h> | |
6 #include <stdint.h> | |
7 | |
8 #include "types.h" | |
9 | |
10 #define LEN(x) (sizeof(x) / sizeof *(x)) | |
11 | |
12 struct property_spec { | |
13 const char *enumname; | |
14 const char *file; | |
15 const char *ucdname; | |
16 const char *ucdsubname; | |
17 }; | |
18 | |
19 struct properties { | |
20 int_least64_t property; | |
21 }; | |
22 | |
23 struct properties_compressed { | |
24 size_t *offset; | |
25 struct properties *data; | |
26 size_t datalen; | |
27 }; | |
28 | |
29 struct properties_major_minor { | |
30 size_t *major; | |
31 size_t *minor; | |
32 size_t minorlen; | |
33 }; | |
34 | |
35 int hextocp(const char *, size_t, uint_least32_t *cp); | |
36 int parse_cp_list(const char *, uint_least32_t **, size_t *); | |
37 | |
38 void parse_file_with_callback(const char *, | |
39 int (*callback)(const char *, char **, siz… | |
40 char *, void *), | |
41 void *payload); | |
42 | |
43 void properties_compress(const struct properties *, | |
44 struct properties_compressed *comp); | |
45 double properties_get_major_minor(const struct properties_compressed *, | |
46 struct properties_major_minor *); | |
47 void properties_print_lookup_table(const char *, const size_t *, size_t); | |
48 void properties_print_derived_lookup_table( | |
49 char *, size_t *, size_t, | |
50 int_least64_t (*get_value)(const struct properties *, size_t), | |
51 const void *); | |
52 | |
53 void properties_generate_break_property( | |
54 const struct property_spec *, uint_least8_t, | |
55 uint_least8_t (*fill_missing)(uint_least32_t), | |
56 uint_least8_t (*handle_conflict)(uint_least32_t, uint_least8_t, | |
57 uint_least8_t), | |
58 void (*post_process)(struct properties *), const char *, const c… | |
59 | |
60 void break_test_list_parse(char *, struct break_test **, size_t *); | |
61 void break_test_list_print(const struct break_test *, size_t, const char… | |
62 const char *); | |
63 void break_test_list_free(struct break_test *, size_t); | |
64 | |
65 #endif /* UTIL_H */ |