26 #ifndef _UTF8REWIND_INTERNAL_DATABASE_H_
27 #define _UTF8REWIND_INTERNAL_DATABASE_H_
38 #include "../unicodedatabase.h"
40 enum QuickCheckCaseMapped
42 QuickCheckCaseMapped_Uppercase = 0x01,
43 QuickCheckCaseMapped_Lowercase = 0x02,
44 QuickCheckCaseMapped_Titlecase = 0x04,
45 QuickCheckCaseMapped_Casefolded = 0x08,
51 QuickCheckResult_Maybe,
55 #define PROPERTY_INDEX_SHIFT (5)
57 static const unicode_t PROPERTY_DATA_MASK = (1 << PROPERTY_INDEX_SHIFT) - 1;
59 #define PROPERTY_GET(_indexArray, _dataArray, _cp) \
61 (_indexArray)[(_cp) >> PROPERTY_INDEX_SHIFT] + \
62 ((_cp) & PROPERTY_DATA_MASK)]
64 #define PROPERTY_GET_GC(_cp) \
65 PROPERTY_GET(GeneralCategoryIndexPtr, GeneralCategoryDataPtr, _cp)
67 #define PROPERTY_GET_CCC(_cp) \
68 PROPERTY_GET(CanonicalCombiningClassIndexPtr, CanonicalCombiningClassDataPtr, _cp)
70 #define PROPERTY_GET_CM(_cp) \
71 PROPERTY_GET(QuickCheckCaseMappedIndexPtr, QuickCheckCaseMappedDataPtr, _cp)
73 #define PROPERTY_GET_NFC(_cp) \
74 PROPERTY_GET(QuickCheckNFCIndexPtr, QuickCheckNFCDataPtr, _cp)
76 #define PROPERTY_GET_NFD(_cp) \
77 PROPERTY_GET(QuickCheckNFDIndexPtr, QuickCheckNFDDataPtr, _cp)
79 #define PROPERTY_GET_NFKC(_cp) \
80 PROPERTY_GET(QuickCheckNFKCIndexPtr, QuickCheckNFKCDataPtr, _cp)
82 #define PROPERTY_GET_NFKD(_cp) \
83 PROPERTY_GET(QuickCheckNFKDIndexPtr, QuickCheckNFKDDataPtr, _cp)
85 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:203
Public interface for UTF-8 functions.