changeset 1069:827431b41132

misc: remove usage of BSD sys/queue.h (plugin)
author David Demelier <markand@malikania.fr>
date Mon, 12 Jul 2021 21:11:53 +0200
parents 69602b51c6df
children beb61243cf6d
files irccd/jsapi-plugin.c irccd/peer.c lib/irccd/irccd.c lib/irccd/irccd.h lib/irccd/plugin.h
diffstat 5 files changed, 20 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/irccd/jsapi-plugin.c	Mon Jul 12 21:07:23 2021 +0200
+++ b/irccd/jsapi-plugin.c	Mon Jul 12 21:11:53 2021 +0200
@@ -18,6 +18,8 @@
 
 #include <assert.h>
 
+#include <utlist.h>
+
 #include <irccd/irccd.h>
 #include <irccd/plugin.h>
 
@@ -167,7 +169,7 @@
 
 	duk_push_array(ctx);
 
-	LIST_FOREACH(p, &irc.plugins, link) {
+	LL_FOREACH(irc.plugins, p) {
 		duk_push_string(ctx, p->name);
 		duk_put_prop_index(ctx, -2, i++);
 	}
--- a/irccd/peer.c	Mon Jul 12 21:07:23 2021 +0200
+++ b/irccd/peer.c	Mon Jul 12 21:11:53 2021 +0200
@@ -320,10 +320,10 @@
 
 	fprintf(fp, "OK ");
 
-	LIST_FOREACH(plg, &irc.plugins, link) {
+	LL_FOREACH(irc.plugins, plg) {
 		fprintf(fp, "%s", plg->name);
 
-		if (LIST_NEXT(plg, link))
+		if (plg->next)
 			fputc(' ', fp);
 	}
 
--- a/lib/irccd/irccd.c	Mon Jul 12 21:07:23 2021 +0200
+++ b/lib/irccd/irccd.c	Mon Jul 12 21:11:53 2021 +0200
@@ -43,11 +43,7 @@
 	void *data;
 };
 
-struct irc irc = {
-	.servers = LIST_HEAD_INITIALIZER(),
-	.plugins = LIST_HEAD_INITIALIZER(),
-	.rules = TAILQ_HEAD_INITIALIZER(irc.rules)
-};
+struct irc irc = {0};
 
 static int pipes[2];
 static struct sigaction sa;
@@ -163,7 +159,7 @@
 	 * onMessage for hangman and logger but onCommand for ask. As such call
 	 * hangman and logger first and modify event before ask.
 	 */
-	LIST_FOREACH_SAFE(p, &irc.plugins, link, ptmp) {
+	LL_FOREACH_SAFE(irc.plugins, p, ptmp) {
 		if (is_command(p, ev))
 			plgcmd = p;
 		else if (invokable(p, ev))
@@ -336,7 +332,7 @@
 	assert(!irc_bot_plugin_get(p->name));
 
 	if (irc_plugin_load(p) == 0) {
-		LIST_INSERT_HEAD(&irc.plugins, p, link);
+		LL_PREPEND(irc.plugins, p);
 		irc_log_info("irccd: add new plugin: %s", p->name, p->description);
 		irc_log_info("irccd: %s: version %s, from %s (%s license)", p->name,
 		    p->version, p->author, p->license);
@@ -358,7 +354,7 @@
 	else
 		irc_log_info("irccd: opening plugin %s", name);
 
-	SLIST_FOREACH(ldr, &irc.plugin_loaders, link) {
+	LL_FOREACH(irc.plugin_loaders, ldr) {
 		if (p)
 			break;
 
@@ -401,7 +397,7 @@
 {
 	struct irc_plugin *p;
 
-	LIST_FOREACH(p, &irc.plugins, link)
+	LL_FOREACH(irc.plugins, p)
 		if (strcmp(p->name, name) == 0)
 			return p;
 
@@ -416,7 +412,7 @@
 	if (!(p = irc_bot_plugin_get(name)))
 		return;
 
-	LIST_REMOVE(p, link);
+	LL_DELETE(irc.plugins, p);
 	irc_plugin_unload(p);
 	irc_plugin_finish(p);
 }
@@ -426,7 +422,7 @@
 {
 	assert(ldr);
 
-	SLIST_INSERT_HEAD(&irc.plugin_loaders, ldr, link);
+	LL_PREPEND(irc.plugin_loaders, ldr);
 }
 
 void
@@ -434,9 +430,10 @@
 {
 	struct irc_plugin *p, *tmp;
 
-	LIST_FOREACH_SAFE(p, &irc.plugins, link, tmp)
+	LL_FOREACH_SAFE(irc.plugins, p, tmp)
 		irc_bot_plugin_remove(p->name);
-	LIST_INIT(&irc.plugins);
+
+	irc.plugins = NULL;
 }
 
 void
@@ -655,7 +652,7 @@
 	 * First remove all loaders to mkae sure plugins won't try to load
 	 * new plugins.
 	 */
-	SLIST_FOREACH_SAFE(ld, &irc.plugin_loaders, link, ldtmp)
+	LL_FOREACH_SAFE(irc.plugin_loaders, ld, ldtmp)
 		irc_plugin_loader_finish(ld);
 
 	irc_bot_server_clear();
--- a/lib/irccd/irccd.h	Mon Jul 12 21:07:23 2021 +0200
+++ b/lib/irccd/irccd.h	Mon Jul 12 21:11:53 2021 +0200
@@ -32,8 +32,8 @@
 
 extern struct irc {
 	struct irc_server_list servers;
-	struct irc_plugin_list plugins;
-	struct irc_plugin_loader_list plugin_loaders;
+	struct irc_plugin *plugins;
+	struct irc_plugin_loader *plugin_loaders;
 	struct irc_rule_list rules;
 	struct irc_hook *hooks;
 } irc;
--- a/lib/irccd/plugin.h	Mon Jul 12 21:07:23 2021 +0200
+++ b/lib/irccd/plugin.h	Mon Jul 12 21:11:53 2021 +0200
@@ -19,8 +19,6 @@
 #ifndef IRCCD_PLUGIN_H
 #define IRCCD_PLUGIN_H
 
-#include <sys/queue.h>
-
 #include "limits.h"
 
 #if defined(__cplusplus)
@@ -36,6 +34,7 @@
 	const char *author;
 	const char *description;
 	void *data;
+	struct irc_plugin *next;
 
 	void (*set_template)(struct irc_plugin *, const char *, const char *);
 	const char *(*get_template)(struct irc_plugin *, const char *);
@@ -55,23 +54,17 @@
 	void (*handle)(struct irc_plugin *, const struct irc_event *);
 
 	void (*finish)(struct irc_plugin *);
-
-	LIST_ENTRY(irc_plugin) link;
 };
 
-LIST_HEAD(irc_plugin_list, irc_plugin);
-
 struct irc_plugin_loader {
 	char paths[IRC_PATHS_LEN];
 	char extensions[IRC_EXTENSIONS_LEN];
 	struct irc_plugin *(*open)(struct irc_plugin_loader *, const char *, const char *);
 	void (*finish)(struct irc_plugin_loader *);
 	void *data;
-	SLIST_ENTRY(irc_plugin_loader) link;
+	struct irc_plugin_loader *next;
 };
 
-SLIST_HEAD(irc_plugin_loader_list, irc_plugin_loader);
-
 void
 irc_plugin_set_template(struct irc_plugin *, const char *, const char *);