summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2021-08-03 11:36:09 +0300
committerSergey Poznyakoff <gray@gnu.org>2021-08-03 11:36:09 +0300
commitd0d96d037adae0a1aa21e40edaa9c4ff7c29148d (patch)
tree49492caa1908c8e2bbed28a809cc16529d6f6524
parent6aa56437a4c1368383b86351b8bda489a9fd69a4 (diff)
downloadgdbm-d0d96d037adae0a1aa21e40edaa9c4ff7c29148d.tar.gz
New macro: ARRAY_SIZE
-rw-r--r--src/gdbmdefs.h3
-rw-r--r--src/gdbmsetopt.c2
-rw-r--r--src/gdbmtool.c18
-rw-r--r--src/var.c3
4 files changed, 14 insertions, 12 deletions
diff --git a/src/gdbmdefs.h b/src/gdbmdefs.h
index e1dcc66..18ab8a0 100644
--- a/src/gdbmdefs.h
+++ b/src/gdbmdefs.h
@@ -54,6 +54,9 @@ off_t_sum_ok (off_t a, off_t b)
return a >= 0 && b >= 0 && OFF_T_MAX - a >= b;
}
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+
/* The type definitions are next. */
/* The available file space is stored in an "avail" table. The one with
diff --git a/src/gdbmsetopt.c b/src/gdbmsetopt.c
index a49ea40..22c5279 100644
--- a/src/gdbmsetopt.c
+++ b/src/gdbmsetopt.c
@@ -331,7 +331,7 @@ gdbm_setopt (GDBM_FILE dbf, int optflag, void *optval, int optlen)
GDBM_ASSERT_CONSISTENCY (dbf, -1);
if (optflag >= 0
- && optflag < sizeof (setopt_handler_tab) / sizeof (setopt_handler_tab[0])
+ && optflag < ARRAY_SIZE (setopt_handler_tab)
&& setopt_handler_tab[optflag])
return setopt_handler_tab[optflag] (dbf, optval, optlen);
diff --git a/src/gdbmtool.c b/src/gdbmtool.c
index 88fc660..e12b349 100644
--- a/src/gdbmtool.c
+++ b/src/gdbmtool.c
@@ -924,8 +924,8 @@ print_snapshot (char const *snapname, FILE *fp)
break;
default:
- error_push (errs, &errn, sizeof (errs) / sizeof (errs[0]),
- N_("bad file mode"), 0, 0);
+ error_push (errs, &errn, ARRAY_SIZE (errs), N_("bad file mode"),
+ 0, 0);
}
fprintf (fp, "%s: ", snapname);
@@ -949,17 +949,17 @@ print_snapshot (char const *snapname, FILE *fp)
if (errno == EACCES)
fprintf (fp, " ?");
else
- error_push (errs, &errn, sizeof (errs) / sizeof (errs[0]),
+ error_push (errs, &errn, ARRAY_SIZE (errs),
N_("can't open database"),
gdbm_errno, errno);
}
else
- error_push (errs, &errn, sizeof (errs) / sizeof (errs[0]),
+ error_push (errs, &errn, ARRAY_SIZE (errs),
N_("can't open database"),
gdbm_errno, 0);
}
else
- error_push (errs, &errn, sizeof (errs) / sizeof (errs[0]),
+ error_push (errs, &errn, ARRAY_SIZE (errs),
N_("not a regular file"),
0, 0);
fputc ('\n', fp);
@@ -1044,7 +1044,7 @@ snapshot_handler (struct handler_param *param)
char const *sel;
int rc = gdbm_latest_snapshot (sa, sb, &sel);
- if (rc >= 0 && rc < sizeof(snapshot_status_info)/sizeof(snapshot_status_info[0]))
+ if (rc >= 0 && rc < ARRAY_SIZE (snapshot_status_info))
{
fprintf (param->fp,
"%s: %s.\n",
@@ -1695,9 +1695,9 @@ cmdcmp (const void *a, const void *b)
}
void
-sort_commands ()
+sort_commands (void)
{
- qsort (command_tab, sizeof (command_tab) / sizeof (command_tab[0]) - 1,
+ qsort (command_tab, ARRAY_SIZE (command_tab) - 1,
sizeof (command_tab[0]), cmdcmp);
}
@@ -1742,7 +1742,7 @@ int
help_begin (struct handler_param *param GDBM_ARG_UNUSED, size_t *exp_count)
{
if (exp_count)
- *exp_count = sizeof (command_tab) / sizeof (command_tab[0]) + 1;
+ *exp_count = ARRAY_SIZE (command_tab) + 1;
return 0;
}
diff --git a/src/var.c b/src/var.c
index 869c127..c136c14 100644
--- a/src/var.c
+++ b/src/var.c
@@ -334,8 +334,7 @@ variable_print_all (FILE *fp)
if (!sorted)
{
- qsort (vartab, sizeof (vartab) / sizeof (vartab[0]) - 1,
- sizeof (vartab[0]), varcmp);
+ qsort (vartab, ARRAY_SIZE (vartab) - 1, sizeof (vartab[0]), varcmp);
sorted = 1;
}