lua: Prevent from loading if it's already loaded

Closes #1958
This commit is contained in:
culb 2017-02-27 12:14:36 -05:00 committed by Patrick Griffis
parent 92496b183e
commit 5d72755027
1 changed files with 10 additions and 0 deletions

View File

@ -1685,8 +1685,17 @@ static int command_lua(char *word[], char *word_eol[], void *userdata)
return HEXCHAT_EAT_ALL; 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) 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 ")) if (g_str_has_prefix(LUA_VERSION, "Lua "))
{ {
strcat(plugin_version, "/"); strcat(plugin_version, "/");
@ -1698,6 +1707,7 @@ G_MODULE_EXPORT int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **na
*version = plugin_version; *version = plugin_version;
ph = plugin_handle; ph = plugin_handle;
initialized = 1;
hexchat_hook_command(ph, "", HEXCHAT_PRI_NORM, command_console_exec, NULL, NULL); hexchat_hook_command(ph, "", HEXCHAT_PRI_NORM, command_console_exec, NULL, NULL);
hexchat_hook_command(ph, "LOAD", HEXCHAT_PRI_NORM, command_load, NULL, NULL); hexchat_hook_command(ph, "LOAD", HEXCHAT_PRI_NORM, command_load, NULL, NULL);