diff --git a/src/includes/helpers.h b/src/includes/helpers.h index 39b192a3..94e59a83 100644 --- a/src/includes/helpers.h +++ b/src/includes/helpers.h @@ -46,6 +46,8 @@ # define _unused #endif +#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) + /* Some libc implemntations don't have these */ #ifndef TAILQ_CONCAT #define TAILQ_CONCAT(head1, head2, field) do { \ diff --git a/src/libeinfo/libeinfo.c b/src/libeinfo/libeinfo.c index eb331930..98cec928 100644 --- a/src/libeinfo/libeinfo.c +++ b/src/libeinfo/libeinfo.c @@ -135,7 +135,7 @@ static const struct ecolor ecolors[] = { { ECOLOR_BRACKET, BRACKET, "bracket" }, { ECOLOR_NORMAL, 0, NULL }, }; -static const char *ecolors_str[sizeof(ecolors)/sizeof(ecolors[0])]; +static const char *ecolors_str[ARRAY_SIZE(ecolors)]; static char *flush = NULL; static char *up = NULL; @@ -442,7 +442,7 @@ colour_terminal(FILE * EINFO_RESTRICT f) /* Now setup our colours */ p = ebuffer; - for (i = 0; i < sizeof(ecolors) / sizeof(ecolors[0]); i++) { + for (i = 0; i < ARRAY_SIZE(ecolors); ++i) { tmp[0] = '\0'; if (ecolors[i].name) { bold = _md; @@ -578,7 +578,7 @@ _ecolor(FILE * EINFO_RESTRICT f, ECOLOR color) if (!colour_terminal(f)) return ""; - for (i = 0; i < sizeof(ecolors) / sizeof(ecolors[0]); i++) + for (i = 0; i < ARRAY_SIZE(ecolors); ++i) if (ecolors[i].color == color) return ecolors_str[i]; return ""; diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c index 965b3312..d1eb8a5d 100644 --- a/src/rc/start-stop-daemon.c +++ b/src/rc/start-stop-daemon.c @@ -192,7 +192,7 @@ parse_signal(const char *sig) else s = NULL; - for (i = 0; i < sizeof(signallist) / sizeof(signallist[0]); i++) + for (i = 0; i < ARRAY_SIZE(signallist); ++i) if (strcmp(sig, signallist[i].name) == 0 || (s && strcmp(s, signallist[i].name) == 0)) return signallist[i].signal;