summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--plugins/lua/lua.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/plugins/lua/lua.c b/plugins/lua/lua.c
index d284d01a..941342bb 100644
--- a/plugins/lua/lua.c
+++ b/plugins/lua/lua.c
@@ -1361,16 +1361,6 @@ static script_info *create_script(char const *file)
 	return info;
 }
 
-static void load_script(char const *file)
-{
-	script_info *info = create_script(file);
-	if(info)
-	{
-		g_ptr_array_add(scripts, info);
-		check_deferred(info);
-	}
-}
-
 static script_info *get_script_by_file(char const *filename)
 {
 	char const *expanded = expand_path(filename);
@@ -1387,6 +1377,26 @@ static script_info *get_script_by_file(char const *filename)
 	return NULL;
 }
 
+static int load_script(char const *file)
+{
+	script_info *info = get_script_by_file(file);
+
+	if (info != NULL)
+	{
+		hexchat_print(ph, "Lua script is already loaded");
+		return 0;
+	}
+
+	info = create_script(file);
+	if (info)
+	{
+		g_ptr_array_add(scripts, info);
+		check_deferred(info);
+	}
+
+	return 1;
+}
+
 static int unload_script(char const *filename)
 {
 	script_info *script = get_script_by_file(filename);