Lines Matching refs:ucs
3 // ### The following from http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
67 * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
132 static int bisearch(wchar_t ucs, const struct interval *table, int max) {
136 if (ucs < table[0].first || ucs > table[max].last)
140 if (ucs > table[mid].last)
142 else if (ucs < table[mid].first)
185 static int mk_wcwidth(wchar_t ucs)
188 if (ucs == 0)
190 if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))
194 if (bisearch(ucs, combining,
198 /* if we arrive here, ucs is not a combining or C0/C1 control character */
201 (ucs >= 0x1100 &&
202 (ucs <= 0x115f || /* Hangul Jamo init. consonants */
203 ucs == 0x2329 || ucs == 0x232a ||
204 (ucs >= 0x2e80 && ucs <= 0xa4cf &&
205 ucs != 0x303f) || /* CJK ... Yi */
206 (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
207 (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
208 (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */
209 (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
210 (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */
211 (ucs >= 0xffe0 && ucs <= 0xffe6) ||
212 (ucs >= 0x20000 && ucs <= 0x2fffd) ||
213 (ucs >= 0x30000 && ucs <= 0x3fffd)));
240 static int mk_wcwidth_cjk(wchar_t ucs)
300 if (bisearch(ucs, ambiguous,
304 return mk_wcwidth(ucs);