Lines Matching refs:code
54 static const UCDRecord *get_ucd_record(uint32_t code)
58 if (code >= 0x110000)
61 index = index0[code >> (SHIFT1+SHIFT2)] << SHIFT1;
62 offset = (code >> SHIFT2) & ((1<<SHIFT1) - 1);
64 offset = code & ((1<<SHIFT2) - 1);
71 static const unsigned short *get_decomp_record(uint32_t code)
75 if (code >= 0x110000)
78 index = decomp_index0[code >> (DECOMP_SHIFT1+DECOMP_SHIFT2)]
80 offset = (code >> DECOMP_SHIFT2) & ((1<<DECOMP_SHIFT1) - 1);
82 offset = code & ((1<<DECOMP_SHIFT2) - 1);
89 static int get_comp_index(uint32_t code, const Reindex *idx)
95 if (code < cur->start)
97 if (code <= cur->start + cur->count) {
98 return cur->index + (code - cur->start);
112 static int hangul_pair_decompose(uint32_t code, uint32_t *a, uint32_t *b)
114 int si = code - SBASE;
132 static int hangul_pair_compose(uint32_t *code, uint32_t a, uint32_t b)
143 *code = a + (b - TBASE);
149 *code = SBASE + li * NCOUNT + vi * TCOUNT;
156 const unsigned short *code = *code_ptr;
158 if ((code[0] & 0xd800) != 0xd800) {
160 return (uint32_t)code[0];
163 return 0x10000 + ((uint32_t)code[1] - 0xdc00) +
164 (((uint32_t)code[0] - 0xd800) << 10);
173 int ucdn_get_combining_class(uint32_t code)
175 return get_ucd_record(code)->combining;
178 int ucdn_get_east_asian_width(uint32_t code)
180 return get_ucd_record(code)->east_asian_width;
183 int ucdn_get_general_category(uint32_t code)
185 return get_ucd_record(code)->category;
188 int ucdn_get_bidi_class(uint32_t code)
190 return get_ucd_record(code)->bidi_class;
193 int ucdn_get_mirrored(uint32_t code)
195 return get_ucd_record(code)->mirrored;
198 int ucdn_get_script(uint32_t code)
200 return get_ucd_record(code)->script;
203 uint32_t ucdn_mirror(uint32_t code)
208 if (get_ucd_record(code)->mirrored == 0)
209 return code;
211 mp.from = code;
216 return code;
221 int ucdn_decompose(uint32_t code, uint32_t *a, uint32_t *b)
226 if (hangul_pair_decompose(code, a, b))
229 rec = get_decomp_record(code);
245 int ucdn_compose(uint32_t *code, uint32_t a, uint32_t b)
249 if (hangul_pair_compose(code, a, b))
263 *code = comp_data[index + offset];
265 return *code != 0;
268 int ucdn_compat_decompose(uint32_t code, uint32_t *decomposed)
271 const unsigned short *rec = get_decomp_record(code);