You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.5 KiB
46 lines
2.5 KiB
module grapheme;
|
|
|
|
const uint GRAPHEME_INVALID_CODEPOINT = 0xFFFD;
|
|
|
|
enum BidirectionalDirection {
|
|
GRAPHEME_BIDIRECTIONAL_DIRECTION_NEUTRAL,
|
|
GRAPHEME_BIDIRECTIONAL_DIRECTION_LTR,
|
|
GRAPHEME_BIDIRECTIONAL_DIRECTION_RTL,
|
|
}
|
|
|
|
fn isz bidirectional_get_line_embedding_levels(uint *, isz, ichar *, isz) @extern("grapheme_bidirectional_get_line_embedding_levels");
|
|
|
|
fn isz bidirectional_preprocess_paragraph(uint *, isz, BidirectionalDirection, uint *, isz, BidirectionalDirection *) @extern("grapheme_bidirectional_preprocess_paragraph");
|
|
|
|
fn isz bidirectional_reorder_line(uint *, uint *, isz, uint *, isz) @extern("grapheme_bidirectional_reorder_line");
|
|
|
|
fn isz decode_utf8(char *, isz, uint *) @extern("grapheme_decode_utf8");
|
|
fn isz encode_utf8(uint, char *, isz) @extern("grapheme_encode_utf8");
|
|
|
|
fn bool is_character_break(uint, uint, ushort *) @extern("grapheme_is_character_break");
|
|
|
|
fn bool is_lowercase(uint *, isz, isz *) @extern("grapheme_is_lowercase");
|
|
fn bool is_titlecase(uint *, isz, isz *) @extern("grapheme_is_titlecase");
|
|
fn bool is_uppercase(uint *, isz, isz *) @extern("grapheme_is_uppercase");
|
|
|
|
fn bool is_lowercase_utf8(char *, isz, isz *) @extern("grapheme_is_lowercase_utf8");
|
|
fn bool is_titlecase_utf8(char *, isz, isz *) @extern("grapheme_is_titlecase_utf8");
|
|
fn bool is_uppercase_utf8(char *, isz, isz *) @extern("grapheme_is_uppercase_utf8");
|
|
|
|
fn isz next_character_break(uint *, isz) @extern("grapheme_next_character_break");
|
|
fn isz next_line_break(uint *, isz) @extern("grapheme_next_line_break");
|
|
fn isz next_sentence_break(uint *, isz) @extern("grapheme_next_sentence_break");
|
|
fn isz next_word_break(uint *, isz) @extern("grapheme_next_word_break");
|
|
|
|
fn isz next_character_break_utf8(char *, isz) @extern("grapheme_next_character_break_utf8");
|
|
fn isz next_line_break_utf8(char *, isz) @extern("grapheme_next_line_break_utf8");
|
|
fn isz next_sentence_break_utf8(char *, isz) @extern("grapheme_next_sentence_break_utf8");
|
|
fn isz next_word_break_utf8(char *, isz) @extern("grapheme_next_word_break_utf8");
|
|
|
|
fn isz to_lowercase(uint *, isz, uint *, isz) @extern("grapheme_to_lowercase");
|
|
fn isz to_titlecase(uint *, isz, uint *, isz) @extern("grapheme_to_titlecase");
|
|
fn isz to_uppercase(uint *, isz, uint *, isz) @extern("grapheme_to_uppercase");
|
|
|
|
fn isz to_lowercase_utf8(char *, isz, char *, isz) @extern("grapheme_to_lowercase_utf8");
|
|
fn isz to_titlecase_utf8(char *, isz, char *, isz) @extern("grapheme_to_titlecase_utf8");
|
|
fn isz to_uppercase_utf8(char *, isz, char *, isz) @extern("grapheme_to_uppercase_utf8");
|
|
|