patch 8.2.2922: computing array length is done in various ways
Problem: Computing array length is done in various ways.
Solution: Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 9c8eba5..fbf2c7d 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3735,7 +3735,7 @@
if (VIM_ISDIGIT(*cmd))
p = skipwhite(skipdigits(cmd + 1));
- for (i = 0; i < (int)(sizeof(cmdmods) / sizeof(struct cmdmod)); ++i)
+ for (i = 0; i < (int)ARRAY_LENGTH(cmdmods); ++i)
{
for (j = 0; p[j] != NUL; ++j)
if (p[j] != cmdmods[i].name[j])
@@ -3762,7 +3762,7 @@
char_u *p;
// Check command modifiers.
- for (i = 0; i < (int)(sizeof(cmdmods) / sizeof(struct cmdmod)); ++i)
+ for (i = 0; i < (int)ARRAY_LENGTH(cmdmods); ++i)
{
for (j = 0; name[j] != NUL; ++j)
if (name[j] != cmdmods[i].name[j])
@@ -8732,7 +8732,7 @@
#endif
};
- for (i = 0; i < (int)(sizeof(spec_str) / sizeof(char *)); ++i)
+ for (i = 0; i < (int)ARRAY_LENGTH(spec_str); ++i)
{
len = (int)STRLEN(spec_str[i]);
if (STRNCMP(src, spec_str[i], len) == 0)