kitty/kitty/unicode-data.h
Kovid Goyal 80301d465b
Handle non-BMP combining characters
Use a level of indirection to store combining characters. This allows
combining characters to be stored using only two bytes, even if they are
after USHORT_MAX
2018-01-18 16:25:42 +05:30

25 lines
586 B
C

#pragma once
#include "data-types.h"
bool is_combining_char(char_type ch);
bool is_ignored_char(char_type ch);
bool is_word_char(char_type ch);
bool is_CZ_category(char_type);
bool is_P_category(char_type);
char_type codepoint_for_mark(combining_type m);
combining_type mark_for_codepoint(char_type c);
static inline bool
is_url_char(uint32_t ch) {
return ch && !is_CZ_category(ch);
}
static inline bool
can_strip_from_end_of_url(uint32_t ch) {
// remove trailing punctuation
return (
(is_P_category(ch) && ch != '/') ||
ch == '>'
) ? true : false;
}