changeset 5357:2a1c92df7024

[gaim-migrate @ 5733] This should make event broadcasting on loader plugins (like perl) work again. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 11 May 2003 21:47:29 +0000
parents 1333675218a4
children 91db34a45cbe
files src/plugin.c
diffstat 1 files changed, 22 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugin.c	Sun May 11 18:32:01 2003 +0000
+++ b/src/plugin.c	Sun May 11 21:47:29 2003 +0000
@@ -253,8 +253,20 @@
 		return TRUE;
 
 	if (plugin->native_plugin) {
-		if (plugin->info != NULL && plugin->info->load != NULL)
-			plugin->info->load(plugin);
+		if (plugin->info != NULL) {
+			if (plugin->info->load != NULL)
+				plugin->info->load(plugin);
+
+			if (plugin->info->type == GAIM_PLUGIN_LOADER) {
+				GaimPluginLoaderInfo *loader_info;
+
+				loader_info = GAIM_PLUGIN_LOADER_INFO(plugin);
+
+				if (loader_info->broadcast != NULL)
+					gaim_signals_register_broadcast_func(loader_info->broadcast,
+														 NULL);
+			}
+		}
 	}
 	else {
 		GaimPlugin *loader;
@@ -336,6 +348,14 @@
 
 			g_list_free(prpl_info->user_opts);
 		}
+		else if (plugin->info->type == GAIM_PLUGIN_LOADER) {
+			GaimPluginLoaderInfo *loader_info;
+
+			loader_info = GAIM_PLUGIN_LOADER_INFO(plugin);
+
+			if (loader_info->broadcast != NULL)
+				gaim_signals_unregister_broadcast_func(loader_info->broadcast);
+		}
 	}
 	else {
 		GaimPlugin *loader;