summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--plugins/lua/lua.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/plugins/lua/lua.c b/plugins/lua/lua.c
index 0dc7aeda..d284d01a 100644
--- a/plugins/lua/lua.c
+++ b/plugins/lua/lua.c
@@ -1685,8 +1685,17 @@ static int command_lua(char *word[], char *word_eol[], void *userdata)
 	return HEXCHAT_EAT_ALL;
 }
 
+/* Reinitialization safegaurd */
+static int initialized = 0;
+
 G_MODULE_EXPORT int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **name, char **description, char **version, char *arg)
 {
+	if(initialized != 0)
+	{
+		hexchat_print(plugin_handle, "Lua interface already loaded\n");
+		return 0;
+	}
+
 	if (g_str_has_prefix(LUA_VERSION, "Lua "))
 	{
 		strcat(plugin_version, "/");
@@ -1698,6 +1707,7 @@ G_MODULE_EXPORT int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **na
 	*version = plugin_version;
 
 	ph = plugin_handle;
+	initialized = 1;
 
 	hexchat_hook_command(ph, "", HEXCHAT_PRI_NORM, command_console_exec, NULL, NULL);
 	hexchat_hook_command(ph, "LOAD", HEXCHAT_PRI_NORM, command_load, NULL, NULL);