comparison src/plugin.c @ 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 d1fe8e320dab
children ad445074d239
comparison
equal deleted inserted replaced
5356:1333675218a4 5357:2a1c92df7024
251 251
252 if (gaim_plugin_is_loaded(plugin)) 252 if (gaim_plugin_is_loaded(plugin))
253 return TRUE; 253 return TRUE;
254 254
255 if (plugin->native_plugin) { 255 if (plugin->native_plugin) {
256 if (plugin->info != NULL && plugin->info->load != NULL) 256 if (plugin->info != NULL) {
257 plugin->info->load(plugin); 257 if (plugin->info->load != NULL)
258 plugin->info->load(plugin);
259
260 if (plugin->info->type == GAIM_PLUGIN_LOADER) {
261 GaimPluginLoaderInfo *loader_info;
262
263 loader_info = GAIM_PLUGIN_LOADER_INFO(plugin);
264
265 if (loader_info->broadcast != NULL)
266 gaim_signals_register_broadcast_func(loader_info->broadcast,
267 NULL);
268 }
269 }
258 } 270 }
259 else { 271 else {
260 GaimPlugin *loader; 272 GaimPlugin *loader;
261 GaimPluginLoaderInfo *loader_info; 273 GaimPluginLoaderInfo *loader_info;
262 274
334 g_free(puo); 346 g_free(puo);
335 } 347 }
336 348
337 g_list_free(prpl_info->user_opts); 349 g_list_free(prpl_info->user_opts);
338 } 350 }
351 else if (plugin->info->type == GAIM_PLUGIN_LOADER) {
352 GaimPluginLoaderInfo *loader_info;
353
354 loader_info = GAIM_PLUGIN_LOADER_INFO(plugin);
355
356 if (loader_info->broadcast != NULL)
357 gaim_signals_unregister_broadcast_func(loader_info->broadcast);
358 }
339 } 359 }
340 else { 360 else {
341 GaimPlugin *loader; 361 GaimPlugin *loader;
342 GaimPluginLoaderInfo *loader_info; 362 GaimPluginLoaderInfo *loader_info;
343 363