From 6644fa953eeecf5ca1dcc7236b3f4b0afddf2b78 Mon Sep 17 00:00:00 2001 From: James Booth Date: Fri, 10 Aug 2012 23:18:02 +0100 Subject: Command list size now calculated No longer have to specify size, and keep it up to date when adding new commands --- src/command.c | 11 +++++------ src/common.h | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/command.c b/src/command.c index bbc77574..8d906b15 100644 --- a/src/command.c +++ b/src/command.c @@ -25,6 +25,7 @@ #include +#include "common.h" #include "command.h" #include "contact_list.h" #include "history.h" @@ -88,8 +89,6 @@ static struct cmd_t commands[] = { { "/xa", _cmd_xa }, { "/help", _cmd_help } }; - -static const int num_cmds = 19; gboolean process_input(char *inp) @@ -124,8 +123,8 @@ command_init(void) { commands_ac = p_autocomplete_new(); - int i; - for (i = 0; i < num_cmds; i++) { + unsigned int i; + for (i = 0; i < ARRAY_SIZE(commands); i++) { struct cmd_t *pcmd = commands+i; p_autocomplete_add(commands_ac, (gchar *)pcmd->cmd); } @@ -148,8 +147,8 @@ reset_command_completer(void) static gboolean _handle_command(const char * const command, const char * const inp) { - int i; - for (i = 0; i < num_cmds; i++) { + unsigned int i; + for (i = 0; i < ARRAY_SIZE(commands); i++) { struct cmd_t *pcmd = commands+i; if (strcmp(pcmd->cmd, command) == 0) { return (pcmd->func(inp)); diff --git a/src/common.h b/src/common.h index 3cc5b766..ae99b165 100644 --- a/src/common.h +++ b/src/common.h @@ -49,6 +49,8 @@ typedef enum { #define notify_notification_new(summary, body, icon) notify_notification_new(summary, body, icon, NULL) #endif +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) + void p_slist_free_full(GSList *items, GDestroyNotify free_func); void create_config_directory(void); void create_dir(char *name); -- cgit 1.4.1-2-gfad0