git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2] utf8: use ARRAY_SIZE() in git_wcwidth()

From
Beat Bolli <dev+git@drbeat.li>
Date
Oct 11, 2019, 18:41 UTC
Message-ID
<20191011184123.17376-1-dev+git@drbeat.li>
In-Reply-To
<20191011182448.11420-1-dev+git@drbeat.li>

This macro has been available globally since b4f2a6ac92 ("Use #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))", 2006-03-09), so let's use it.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
---
Brown paperbag fix. Sorry!

It's idle to speculate about why the macro wasn't used in the original 9e83266525 ("commit-tree: encourage UTF-8 commit messages.", 2006-12-22) or why it hasn't been cleaned up since then. Possible reasons may be the line wrap within the division or the fact that one sizeof() takes the variable while the other one takes the type. Either of these would make a normal search fail.

 utf8.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/utf8.c b/utf8.c
index 3b42fadffd..5c8f151f75 100644
--- 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;
-- 
2.21.0.1020.gf2820cf01a
Previous: Beat BolliNext: Junio C Hamano
Message 2 of 3 in “utf8: use ARRAY_SIZE() in git_wcwidth()”
  1. utf8: use ARRAY_SIZE() in git_wcwidth()Beat Bolli, Oct 11, 2019
  2. utf8: use ARRAY_SIZE() in git_wcwidth()Beat Bolli, Oct 11, 2019
  3. Junio C HamanoOct 12, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.