return -1;
/* binary search in table of non-spacing characters */
- if (bisearch(ch, zero_width, sizeof(zero_width)
- / sizeof(struct interval) - 1))
+ if (bisearch(ch, zero_width, ARRAY_SIZE(zero_width) - 1))
return 0;
/* binary search in table of double width characters */
- if (bisearch(ch, double_width, sizeof(double_width)
- / sizeof(struct interval) - 1))
+ if (bisearch(ch, double_width, ARRAY_SIZE(double_width) - 1))
return 2;
return 1;
*/
static int same_utf_encoding(const char *src, const char *dst)
{
- if (istarts_with(src, "utf") && istarts_with(dst, "utf")) {
- /* src[3] or dst[3] might be '\0' */
- int i = (src[3] == '-' ? 4 : 3);
- int j = (dst[3] == '-' ? 4 : 3);
- return !strcasecmp(src+i, dst+j);
+ if (skip_iprefix(src, "utf", &src) && skip_iprefix(dst, "utf", &dst)) {
+ skip_prefix(src, "-", &src);
+ skip_prefix(dst, "-", &dst);
+ return !strcasecmp(src, dst);
}
return 0;
}