From ce93fa8adbeb31d160cba198e50e3f828e8def50 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sat, 4 May 2013 17:11:33 +0200 Subject: Use a macro to determine the size of arrays Use following macro instead of "sizeof(x) / sizeof(x[0])" everywhere: #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) Signed-off-by: Lukas Fleischer --- src/calcurse.h | 2 ++ src/config.c | 8 ++++---- src/custom.c | 8 ++++---- src/utf8.c | 2 +- src/wins.c | 9 +++------ 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/calcurse.h b/src/calcurse.h index 1dfd648..da1f447 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -230,6 +230,8 @@ #define UTF8_ISCONT(ch) ((unsigned char)ch >= 0x80 && \ (unsigned char)ch <= 0xBF) +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + #define MAX(x,y) ((x)>(y)?(x):(y)) #define MIN(x,y) ((x)<(y)?(x):(y)) diff --git a/src/config.c b/src/config.c index 39ac338..da6b049 100644 --- a/src/config.c +++ b/src/config.c @@ -112,7 +112,7 @@ static const struct confvar confmap[] = { struct config_save_status { FILE *fp; - int done[sizeof(confmap) / sizeof(confmap[0])]; + int done[ARRAY_SIZE(confmap)]; }; typedef int (*config_fn_walk_cb_t) (const char *, const char *, void *); @@ -284,7 +284,7 @@ static int config_set_conf(const char *key, const char *value) if (!key) return -1; - for (i = 0; i < sizeof(confmap) / sizeof(confmap[0]); i++) { + for (i = 0; i < ARRAY_SIZE(confmap); i++) { if (!strcmp(confmap[i].key, key)) return confmap[i].fn_parse(confmap[i].target, value); @@ -447,7 +447,7 @@ config_serialize_conf(char *buf, const char *key, if (!key) return -1; - for (i = 0; i < sizeof(confmap) / sizeof(confmap[0]); i++) { + for (i = 0; i < ARRAY_SIZE(confmap); i++) { if (!strcmp(confmap[i].key, key)) { if (confmap[i]. fn_serialize(buf, confmap[i].target)) { @@ -617,7 +617,7 @@ unsigned config_save(void) (void *)&status); /* Set variables that were missing from the configuration file. */ - for (i = 0; i < sizeof(confmap) / sizeof(confmap[0]); i++) { + for (i = 0; i < ARRAY_SIZE(confmap); i++) { if (!status.done[i]) config_save_cb(confmap[i].key, NULL, &status); } diff --git a/src/custom.c b/src/custom.c index 6ae8abc..da632bf 100644 --- a/src/custom.c +++ b/src/custom.c @@ -135,7 +135,7 @@ static void layout_selection_bar(void) struct binding *bindings[] = { &quit, &select, &up, &down, &left, &right, &help }; - int bindings_size = sizeof(bindings) / sizeof(bindings[0]); + int bindings_size = ARRAY_SIZE(bindings); keys_display_bindings_bar(win[STA].p, bindings, bindings_size, 0, bindings_size, NULL); @@ -307,7 +307,7 @@ void custom_sidebar_config(void) "can't be smaller than %d characters wide.\n\n"); int ch, bindings_size; - bindings_size = sizeof(bindings) / sizeof(bindings[0]); + bindings_size = ARRAY_SIZE(bindings); keys_display_bindings_bar(win[STA].p, bindings, bindings_size, 0, bindings_size, NULL); @@ -401,7 +401,7 @@ static void color_selection_bar(void) struct binding *bindings[] = { &quit, &nocolor, &up, &down, &left, &right, &select }; - int bindings_size = sizeof(bindings) / sizeof(bindings[0]); + int bindings_size = ARRAY_SIZE(bindings); keys_display_bindings_bar(win[STA].p, bindings, bindings_size, 0, bindings_size, NULL); @@ -926,7 +926,7 @@ static void custom_keys_config_bar(void) struct binding *bindings[] = { &quit, &info, &add, &del, &up, &down, &left, &right }; - int bindings_size = sizeof(bindings) / sizeof(bindings[0]); + int bindings_size = ARRAY_SIZE(bindings); keys_display_bindings_bar(win[STA].p, bindings, bindings_size, 0, bindings_size, NULL); diff --git a/src/utf8.c b/src/utf8.c index 9b9f341..723c121 100644 --- a/src/utf8.c +++ b/src/utf8.c @@ -307,7 +307,7 @@ int utf8_width(char *s) } low = 0; - high = sizeof(utf8_widthtab) / sizeof(utf8_widthtab[0]); + high = ARRAY_SIZE(utf8_widthtab); do { cur = (low + high) / 2; if (val >= utf8_widthtab[cur].min) { diff --git a/src/wins.c b/src/wins.c index 0a3f48f..bcc5a90 100644 --- a/src/wins.c +++ b/src/wins.c @@ -678,18 +678,15 @@ void wins_status_bar(void) switch (active_panel) { case CAL: bindings = bindings_cal; - bindings_size = - sizeof(bindings_cal) / sizeof(bindings_cal[0]); + bindings_size = ARRAY_SIZE(bindings_cal); break; case APP: bindings = bindings_apoint; - bindings_size = - sizeof(bindings_apoint) / sizeof(bindings_apoint[0]); + bindings_size = ARRAY_SIZE(bindings_apoint); break; case TOD: bindings = bindings_todo; - bindings_size = - sizeof(bindings_todo) / sizeof(bindings_todo[0]); + bindings_size = ARRAY_SIZE(bindings_todo); break; default: EXIT(_("unknown panel")); -- cgit v1.2.3