]> git.ipfire.org Git - thirdparty/git.git/blobdiff - utf8.c
Merge branch 'nk/diff-files-vs-fsmonitor'
[thirdparty/git.git] / utf8.c
diff --git a/utf8.c b/utf8.c
index 3b42fadffd7ccb89a5658fdf8d314014f299a769..5b39361ada0bbab3dc4df90e64cc6173bb465ff4 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -95,13 +95,11 @@ static int git_wcwidth(ucs_char_t ch)
                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;
@@ -413,11 +411,10 @@ out:
  */
 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;
 }