diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-18 19:51:15 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-18 19:51:15 +0200 |
commit | 43d34d2473917521376f7d56126779f941205105 (patch) | |
tree | 15cf7b276d5705923c4dda172786a9a347b98fe6 | |
parent | 353230b18ba7c8c225c3b23a759798558fabb7de (diff) | |
download | xK-43d34d2473917521376f7d56126779f941205105.tar.gz xK-43d34d2473917521376f7d56126779f941205105.tar.xz xK-43d34d2473917521376f7d56126779f941205105.zip |
Add a LIST_HEADER macro
To save us from specifying the `next' and `prev' pointers all the time.
It's not perfect, just a tiny bit better.
-rw-r--r-- | src/common.c | 7 | ||||
-rw-r--r-- | src/kike.c | 7 | ||||
-rw-r--r-- | src/zyklonb.c | 4 |
3 files changed, 7 insertions, 11 deletions
diff --git a/src/common.c b/src/common.c index 4b72e39..96548d9 100644 --- a/src/common.c +++ b/src/common.c @@ -254,7 +254,9 @@ xstrndup (const char *s, size_t n) // --- Double-linked list helpers ---------------------------------------------- -// The links of the list need to have the members `prev' and `next'. +#define LIST_HEADER(type) \ + struct type *next; \ + struct type *prev; #define LIST_PREPEND(head, link) \ BLOCK_START \ @@ -562,8 +564,7 @@ error_propagate (struct error **destination, struct error *source) struct str_map_link { - struct str_map_link *next; ///< The next link in a chain - struct str_map_link *prev; ///< The previous link in a chain + LIST_HEADER (str_map_link) void *data; ///< Payload size_t key_length; ///< Length of the key without '\0' @@ -215,9 +215,7 @@ enum struct client { - struct client *next; ///< The next link in a chain - struct client *prev; ///< The previous link in a chain - + LIST_HEADER (client) struct server_context *ctx; ///< Server context int socket_fd; ///< The TCP socket @@ -310,8 +308,7 @@ enum struct channel_user { - struct channel_user *prev; - struct channel_user *next; + LIST_HEADER (channel_user) unsigned modes; char nickname[]; diff --git a/src/zyklonb.c b/src/zyklonb.c index b2584de..e5e8749 100644 --- a/src/zyklonb.c +++ b/src/zyklonb.c @@ -52,9 +52,7 @@ static struct config_item g_config_table[] = struct plugin_data { - struct plugin_data *next; ///< The next link in a chain - struct plugin_data *prev; ///< The previous link in a chain - + LIST_HEADER (plugin_data) struct bot_context *ctx; ///< Parent context pid_t pid; ///< PID of the plugin process |