about summary refs log tree commit diff
path: root/third_party/git/utf8.c
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2020-05-25T23·06+0100
committerVincent Ambo <tazjin@google.com>2020-05-25T23·06+0100
commit93ba78d6f4632ef1c5228965e3edc8c0faf88c1e (patch)
tree85730c182a9f5f492ade8e8ccdb1c2356f9900bd /third_party/git/utf8.c
parent6f8fbf4aa4b1654ab27d4829e114538761817de0 (diff)
revert(3p/git): Revert merge of git upstream at v2.26.2 r/852
This causes cgit to serve error pages, which is undesirable.

This reverts commit 5229c9b232de5bfa959ad6ebbb4c8192ac513352, reversing
changes made to f2b211131f2347342dde63975b09cf603149f1a3.
Diffstat (limited to 'third_party/git/utf8.c')
-rw-r--r--third_party/git/utf8.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/third_party/git/utf8.c b/third_party/git/utf8.c
index 5b39361ada0b..3b42fadffd7c 100644
--- a/third_party/git/utf8.c
+++ b/third_party/git/utf8.c
@@ -95,11 +95,13 @@ static int git_wcwidth(ucs_char_t ch)
 		return -1;
 
 	/* binary search in table of non-spacing characters */
-	if (bisearch(ch, zero_width, ARRAY_SIZE(zero_width) - 1))
+	if (bisearch(ch, zero_width, sizeof(zero_width)
+				/ sizeof(struct interval) - 1))
 		return 0;
 
 	/* binary search in table of double width characters */
-	if (bisearch(ch, double_width, ARRAY_SIZE(double_width) - 1))
+	if (bisearch(ch, double_width, sizeof(double_width)
+				/ sizeof(struct interval) - 1))
 		return 2;
 
 	return 1;
@@ -411,10 +413,11 @@ out:
  */
 static int same_utf_encoding(const char *src, const char *dst)
 {
-	if (skip_iprefix(src, "utf", &src) && skip_iprefix(dst, "utf", &dst)) {
-		skip_prefix(src, "-", &src);
-		skip_prefix(dst, "-", &dst);
-		return !strcasecmp(src, 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);
 	}
 	return 0;
 }