26 #ifndef _UTF8REWIND_INTERNAL_DATABASE_H_
27 #define _UTF8REWIND_INTERNAL_DATABASE_H_
38 #include "../unicodedatabase.h"
42 GeneralCategory_Letter = 0x01,
43 GeneralCategory_CaseMapped = 0x02,
44 GeneralCategory_Mark = 0x04,
45 GeneralCategory_Number = 0x08,
46 GeneralCategory_Punctuation = 0x10,
47 GeneralCategory_Symbol = 0x20,
48 GeneralCategory_Separator = 0x40,
49 GeneralCategory_Other = 0x80,
55 QuickCheckResult_Maybe,
59 #define PROPERTY_INDEX_SHIFT (5)
61 static const unicode_t PROPERTY_DATA_MASK = (1 << PROPERTY_INDEX_SHIFT) - 1;
63 #define PROPERTY_GET(_indexArray, _dataArray, _cp) \
65 (_indexArray)[(_cp) >> PROPERTY_INDEX_SHIFT] + \
66 ((_cp) & PROPERTY_DATA_MASK)]
68 #define PROPERTY_GET_GC(_cp) \
69 PROPERTY_GET(GeneralCategoryIndexPtr, GeneralCategoryDataPtr, _cp)
71 #define PROPERTY_GET_CCC(_cp) \
72 PROPERTY_GET(CanonicalCombiningClassIndexPtr, CanonicalCombiningClassDataPtr, _cp)
74 #define PROPERTY_GET_NFC(_cp) \
75 PROPERTY_GET(QuickCheckNFCIndexPtr, QuickCheckNFCDataPtr, _cp)
77 #define PROPERTY_GET_NFD(_cp) \
78 PROPERTY_GET(QuickCheckNFDIndexPtr, QuickCheckNFDDataPtr, _cp)
80 #define PROPERTY_GET_NFKC(_cp) \
81 PROPERTY_GET(QuickCheckNFKCIndexPtr, QuickCheckNFKCDataPtr, _cp)
83 #define PROPERTY_GET_NFKD(_cp) \
84 PROPERTY_GET(QuickCheckNFKDIndexPtr, QuickCheckNFKDDataPtr, _cp)
86 const char* database_querydecomposition(
unicode_t codepoint,
const uint32_t* index1Array,
const uint32_t* index2Array,
const uint32_t* dataArray, uint8_t* length);
uint32_t unicode_t
UTF-32 encoded code point.
Definition: utf8rewind.h:235
Public interface for UTF-8 functions.