libpurple/plugins.c

Fri, 12 Aug 2022 03:44:34 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 12 Aug 2022 03:44:34 -0500
branch
gtk4
changeset 41560
2579a5138f0c
parent 41169
4103b3869912
child 41681
52dbe7ad39ce
permissions
-rw-r--r--

A bunch of random fixes for the the gtk4 branch

Testing Done:
Compiled

Reviewed at https://reviews.imfreedom.org/r/1581/

5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15523
diff changeset
2 * purple
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15523
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
6 * source distribution.
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * (at your option) any later version.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * GNU General Public License for more details.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18889
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 */
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
22
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
23 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
24
36372
5a1fe926f37b Fixed build errors for plugins.c, and used gplugin_plugin_manager_free_plugin_list()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
25 #include "internal.h"
5a1fe926f37b Fixed build errors for plugins.c, and used gplugin_plugin_manager_free_plugin_list()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
26
36412
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
27 #include "core.h"
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
28 #include "debug.h"
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
29 #include "plugins.h"
41007
90d2dee9b3dc Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents: 40978
diff changeset
30 #include "purpleenums.h"
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40310
diff changeset
31 #include "signals.h"
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40310
diff changeset
32 #include "util.h"
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
34 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
35 * Globals
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
36 **************************************************************************/
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
37 static GList *loaded_plugins = NULL;
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
38 static GList *plugins_to_disable = NULL;
10682
c293ad49121e [gaim-migrate @ 12228]
Richard Laager <rlaager@pidgin.im>
parents: 10504
diff changeset
39
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
40 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
41 * Plugin API
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
42 **************************************************************************/
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
43 static gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
44 plugin_loading_cb(GObject *manager, PurplePlugin *plugin, GError **error,
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
45 gpointer data)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
46 {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
47 PurplePluginInfo *info;
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
48 const gchar *info_error = NULL;
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
49
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
50 g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
51
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
52 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
53 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
54 return TRUE; /* a GPlugin internal plugin */
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
55
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
56 info_error = purple_plugin_info_get_error(info);
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
57 if(info_error != NULL) {
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
58 gchar *filename = gplugin_plugin_get_filename(plugin);
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
59 purple_debug_error("plugins", "Failed to load plugin %s: %s",
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
60 filename,
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
61 info_error);
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
62
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
63 g_set_error(error, PURPLE_PLUGINS_DOMAIN, 0,
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
64 "Plugin is not loadable: %s", info_error);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
65
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
66 g_free(filename);
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
67 return FALSE;
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
68 }
36412
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
69
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
70 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
71 }
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
72
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
73 static void
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
74 plugin_loaded_cb(GObject *manager, PurplePlugin *plugin)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
75 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
76 PurplePluginInfo *info;
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
77 gchar *filename;
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
78
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
79 g_return_if_fail(PURPLE_IS_PLUGIN(plugin));
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
80
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
81 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
82 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
83 return; /* a GPlugin internal plugin */
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
84
37008
9dca610b3bf2 Prepend newly-loaded plugins to the loaded list
Ankit Vani <a@nevitus.org>
parents: 37001
diff changeset
85 loaded_plugins = g_list_prepend(loaded_plugins, plugin);
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
86 filename = gplugin_plugin_get_filename(plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
87
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
88 purple_debug_info("plugins", "Loaded plugin %s\n", filename);
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
89
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
90 g_free(filename);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
91 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
92
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
93 static gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
94 plugin_unloading_cb(GObject *manager, PurplePlugin *plugin, GError **error,
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
95 gpointer data)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
96 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
97 PurplePluginInfo *info;
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
98 gchar *filename;
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
99
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
100 g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
101
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
102 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
103 if (info) {
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
104 filename = gplugin_plugin_get_filename(plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
105 purple_debug_info("plugins", "Unloading plugin %s\n",
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
106 filename);
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
107 g_free(filename);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
108 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
109
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
110 return TRUE;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
111 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
112
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
113 static void
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
114 plugin_unloaded_cb(GObject *manager, PurplePlugin *plugin)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
115 {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
116 PurplePluginInfo *info;
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
117
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
118 g_return_if_fail(PURPLE_IS_PLUGIN(plugin));
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
119
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
120 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
121 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
122 return; /* a GPlugin internal plugin */
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
123
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
124 /* cancel any pending dialogs the plugin has */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
125 purple_request_close_with_handle(plugin);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
126 purple_notify_close_with_handle(plugin);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
127
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
128 purple_signals_disconnect_by_handle(plugin);
36527
016e4be6f3da Unregister signals on plugin unload and protocol removal
Ankit Vani <a@nevitus.org>
parents: 36515
diff changeset
129 purple_signals_unregister_by_instance(plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
130
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
131 purple_plugin_info_set_unloaded(info, TRUE);
36469
304912384a5c Free actions on plugin unload, and updated documentation
Ankit Vani <a@nevitus.org>
parents: 36468
diff changeset
132
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
133 loaded_plugins = g_list_remove(loaded_plugins, plugin);
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
134 plugins_to_disable = g_list_remove(plugins_to_disable, plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
135
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
136 purple_prefs_disconnect_by_handle(plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
137 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
138
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
139 gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
140 purple_plugin_load(PurplePlugin *plugin, GError **error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
141 {
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
142 GPluginManager *manager = NULL;
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
143 GError *err = NULL;
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
144 gchar *filename;
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
145
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
146 g_return_val_if_fail(plugin != NULL, FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
147
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
148 if (purple_plugin_is_loaded(plugin))
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
149 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
150
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
151 manager = gplugin_manager_get_default();
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
152
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
153 if (!gplugin_manager_load_plugin(manager, plugin, &err)) {
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
154 filename = gplugin_plugin_get_filename(plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
155 purple_debug_error("plugins", "Failed to load plugin %s: %s",
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
156 filename,
39835
c28a375781dd Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39834
diff changeset
157 err ? err->message : "Unknown reason");
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
158
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
159 g_propagate_error(error, err);
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
160
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
161 g_free(filename);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
162 return FALSE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
163 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
164
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
165 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
166 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
167
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
168 gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
169 purple_plugin_unload(PurplePlugin *plugin, GError **error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
170 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
171 GError *err = NULL;
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
172 gchar *filename;
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
173 GPluginManager *manager = NULL;
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
174
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
175 g_return_val_if_fail(plugin != NULL, FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
176
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
177 if (!purple_plugin_is_loaded(plugin))
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
178 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
179
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
180 manager = gplugin_manager_get_default();
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
181
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
182 if (!gplugin_manager_unload_plugin(manager, plugin, &err)) {
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
183 filename = gplugin_plugin_get_filename(plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
184 purple_debug_error("plugins", "Failed to unload plugin %s: %s",
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
185 filename,
39835
c28a375781dd Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39834
diff changeset
186 err ? err->message : "Unknown reason");
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
187
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
188 g_propagate_error(error, err);
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
189
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
190 g_free(filename);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
191
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
192 return FALSE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
193 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
194
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
195 return TRUE;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
196 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
197
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
198 gboolean
39420
92213bd9538b plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents: 39419
diff changeset
199 purple_plugin_is_loaded(PurplePlugin *plugin)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
200 {
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
201 g_return_val_if_fail(plugin != NULL, FALSE);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
202
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
203 return (gplugin_plugin_get_state(plugin) == GPLUGIN_PLUGIN_STATE_LOADED);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
204 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
205
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
206 PurplePluginInfo *
39420
92213bd9538b plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents: 39419
diff changeset
207 purple_plugin_get_info(PurplePlugin *plugin)
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
208 {
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
209 GPluginPluginInfo *info;
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
210
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
211 g_return_val_if_fail(plugin != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
212
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
213 info = gplugin_plugin_get_info(plugin);
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
214
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
215 /* GPlugin refs the plugin info object before returning it. This workaround
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
216 * is to avoid managing the reference counts everywhere in our codebase
37001
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
217 * where we use the plugin info. The plugin info instance is guaranteed to
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
218 * exist as long as the plugin exists. */
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
219 g_object_unref(info);
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
220
36654
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
221 if (PURPLE_IS_PLUGIN_INFO(info))
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
222 return PURPLE_PLUGIN_INFO(info);
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
223 else
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
224 return NULL;
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
225 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
226
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
227 void
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
228 purple_plugin_disable(PurplePlugin *plugin)
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
229 {
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
230 g_return_if_fail(plugin != NULL);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
231
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
232 if (!g_list_find(plugins_to_disable, plugin))
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
233 plugins_to_disable = g_list_prepend(plugins_to_disable, plugin);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
234 }
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
235
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
236 gboolean
39420
92213bd9538b plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents: 39419
diff changeset
237 purple_plugin_is_internal(PurplePlugin *plugin)
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
238 {
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
239 PurplePluginInfo *info;
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
240
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
241 g_return_val_if_fail(plugin != NULL, FALSE);
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
242
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
243 info = purple_plugin_get_info(plugin);
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
244 if (!info)
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
245 return TRUE;
36472
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
246
36654
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
247 return (purple_plugin_info_get_flags(info) &
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
248 PURPLE_PLUGIN_INFO_FLAGS_INTERNAL);
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
249 }
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
250
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
251 GSList *
39420
92213bd9538b plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents: 39419
diff changeset
252 purple_plugin_get_dependent_plugins(PurplePlugin *plugin)
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
253 {
36986
2326ab164e3a Add reminders to display perl and tcl status in gtkdialog when API available
Ankit Vani <a@nevitus.org>
parents: 36976
diff changeset
254 #warning TODO: Implement this when GPlugin can return dependent plugins.
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
255 return NULL;
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
256 }
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
257
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
258 /**************************************************************************
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
259 * PluginAction API
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
260 **************************************************************************/
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
261 PurplePluginAction *
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
262 purple_plugin_action_new(const char* label, PurplePluginActionCb callback)
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
263 {
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
264 PurplePluginAction *action;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
265
36488
48c3419844f0 Undo action-related changes in UI
Ankit Vani <a@nevitus.org>
parents: 36487
diff changeset
266 g_return_val_if_fail(label != NULL && callback != NULL, NULL);
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
267
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
268 action = g_new0(PurplePluginAction, 1);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
269
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
270 action->label = g_strdup(label);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
271 action->callback = callback;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
272
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
273 return action;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
274 }
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
275
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
276 void
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
277 purple_plugin_action_free(PurplePluginAction *action)
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
278 {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
279 g_return_if_fail(action != NULL);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
280
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
281 g_free(action->label);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
282 g_free(action);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
283 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
284
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
285 static PurplePluginAction *
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
286 purple_plugin_action_copy(PurplePluginAction *action)
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
287 {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
288 g_return_val_if_fail(action != NULL, NULL);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
289
37120
9b5c7e27c8d9 Use purple_plugin_action_new to create a new PurplePluginAction in its GBoxed copy function
Ankit Vani <a@nevitus.org>
parents: 37071
diff changeset
290 return purple_plugin_action_new(action->label, action->callback);
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
291 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
292
39893
e264fc382216 Use GObject macros for some plugin types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39837
diff changeset
293 G_DEFINE_BOXED_TYPE(PurplePluginAction, purple_plugin_action,
e264fc382216 Use GObject macros for some plugin types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39837
diff changeset
294 purple_plugin_action_copy, purple_plugin_action_free)
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
295
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
296 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
297 * Plugins API
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
298 **************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
299 GList *
36400
2ccd829171ec Renamed purple_plugins_get_all() to purple_plugins_find_all() since the list is generated.
Ankit Vani <a@nevitus.org>
parents: 36399
diff changeset
300 purple_plugins_find_all(void)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
301 {
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
302 GList *ret = NULL, *ids, *l;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
303 GSList *plugins, *ll;
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
304 GPluginManager *manager = gplugin_manager_get_default();
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
305
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
306 ids = gplugin_manager_list_plugins(manager);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
307
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
308 for (l = ids; l; l = l->next) {
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
309 plugins = gplugin_manager_find_plugins(manager, l->data);
36806
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
310
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
311 for (ll = plugins; ll; ll = ll->next) {
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
312 PurplePlugin *plugin = PURPLE_PLUGIN(ll->data);
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
313 if (purple_plugin_get_info(plugin))
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
314 ret = g_list_append(ret, plugin);
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
315 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
316
40310
d981cc89bf37 gplugin_manager_free_plugin_list was removed in favor of g_slist_free_full
Gary Kramlich <grim@reaperworld.com>
parents: 40264
diff changeset
317 g_slist_free_full(plugins, g_object_unref);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
318 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
319 g_list_free(ids);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
320
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
321 return ret;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
322 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
323
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
324 GList *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
325 purple_plugins_get_loaded(void)
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
326 {
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
327 return loaded_plugins;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
328 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
329
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
330 void
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
331 purple_plugins_add_search_path(const gchar *path)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
332 {
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
333 GPluginManager *manager = gplugin_manager_get_default();
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
334
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
335 gplugin_manager_append_path(manager, path);
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
336 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
337
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
338 void
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
339 purple_plugins_refresh(void)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
340 {
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
341 GList *plugins, *l;
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
342 GPluginManager *manager = gplugin_manager_get_default();
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
343
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
344 gplugin_manager_refresh(manager);
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
345
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
346 plugins = purple_plugins_find_all();
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
347 for (l = plugins; l != NULL; l = l->next) {
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
348 PurplePlugin *plugin = PURPLE_PLUGIN(l->data);
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
349 PurplePluginInfo *info;
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
350 PurplePluginInfoFlags flags;
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
351 gboolean unloaded;
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
352
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
353 if (purple_plugin_is_loaded(plugin))
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
354 continue;
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
355
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
356 info = purple_plugin_get_info(plugin);
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
357
40963
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
358 unloaded = purple_plugin_info_get_unloaded(info);
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
359 flags = purple_plugin_info_get_flags(info);
f2abd04191b7 Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents: 40945
diff changeset
360 if (!unloaded && flags & PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) {
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
361 gchar *filename = gplugin_plugin_get_filename(plugin);
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
362 purple_debug_info("plugins", "Auto-loading plugin %s\n",
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
363 filename);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
364 purple_plugin_load(plugin, NULL);
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
365 g_free(filename);
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
366 }
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
367 }
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
368
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
369 g_list_free(plugins);
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
370 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
371
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
372 PurplePlugin *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
373 purple_plugins_find_plugin(const gchar *id)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
374 {
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
375 PurplePlugin *plugin;
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
376 GPluginManager *manager = NULL;
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
377
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
378 g_return_val_if_fail(id != NULL && *id != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
379
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
380 manager = gplugin_manager_get_default();
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
381
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
382 plugin = gplugin_manager_find_plugin(manager, id);
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
383
37178
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
384 if (!plugin)
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
385 return NULL;
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
386
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
387 /* GPlugin refs the plugin object before returning it. This workaround is
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
388 * to avoid managing the reference counts everywhere in our codebase where
37001
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
389 * we use plugin instances. A plugin object will exist till the plugins
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
390 * subsystem is uninitialized. */
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
391 g_object_unref(plugin);
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
392
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
393 return plugin;
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
394 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
395
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
396 PurplePlugin *
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
397 purple_plugins_find_by_filename(const char *filename)
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
398 {
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
399 GList *plugins, *l;
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
400
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
401 g_return_val_if_fail(filename != NULL && *filename != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
402
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
403 plugins = purple_plugins_find_all();
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
404
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
405 for (l = plugins; l != NULL; l = l->next) {
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
406 PurplePlugin *plugin = PURPLE_PLUGIN(l->data);
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
407 gchar *plugin_filename = gplugin_plugin_get_filename(plugin);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
408
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
409 if (purple_strequal(plugin_filename, filename)) {
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
410 g_list_free(plugins);
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
411 g_free(plugin_filename);
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
412 return plugin;
36402
a0d82b6f4081 Removed referencing of plugin from PurplePluginAction, since it is a part of the plugin.
Ankit Vani <a@nevitus.org>
parents: 36401
diff changeset
413 }
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
414 g_free(plugin_filename);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
415 }
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
416 g_list_free(plugins);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
417
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
418 return NULL;
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
419 }
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
420
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
421 void
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
422 purple_plugins_save_loaded(const char *key)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
423 {
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
424 GList *pl;
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
425 GList *files = NULL;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
426
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
427 g_return_if_fail(key != NULL && *key != '\0');
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
428
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
429 for (pl = purple_plugins_get_loaded(); pl != NULL; pl = pl->next) {
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
430 PurplePlugin *plugin = PURPLE_PLUGIN(pl->data);
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
431 PurplePluginInfo *info = purple_plugin_get_info(plugin);
36472
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
432 if (!info)
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
433 continue;
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
434
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
435 if (purple_plugin_info_get_flags(info) &
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
436 PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD)
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
437 continue;
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
438
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
439 if (!g_list_find(plugins_to_disable, plugin))
39835
c28a375781dd Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39834
diff changeset
440 files = g_list_append(
c28a375781dd Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39834
diff changeset
441 files,
c28a375781dd Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39834
diff changeset
442 (gchar *)gplugin_plugin_get_filename(plugin));
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
443 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
444
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
445 purple_prefs_set_path_list(key, files);
40264
d253f767f6cc fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents: 39894
diff changeset
446 g_list_free_full(files, g_free);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
447 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
448
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
449 void
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
450 purple_plugins_load_saved(const char *key)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
451 {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
452 GList *l, *files;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
453
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
454 g_return_if_fail(key != NULL && *key != '\0');
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
455
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
456 files = purple_prefs_get_path_list(key);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
457
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
458 for (l = files; l; l = l->next)
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
459 {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
460 char *file;
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
461 PurplePlugin *plugin;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
462
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
463 if (l->data == NULL)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
464 continue;
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
465
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
466 file = l->data;
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
467 plugin = purple_plugins_find_by_filename(file);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
468
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
469 if (plugin) {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
470 purple_debug_info("plugins", "Loading saved plugin %s\n", file);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
471 purple_plugin_load(plugin, NULL);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
472 } else {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
473 purple_debug_error("plugins", "Unable to find saved plugin %s\n", file);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
474 }
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
475
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
476 g_free(l->data);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
477 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
478
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
479 g_list_free(files);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
480 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
481
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
482 /**************************************************************************
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
483 * Plugins Subsystem API
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
484 **************************************************************************/
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
485 void
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
486 purple_plugins_init(void)
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
487 {
40978
2cb285cacbfd Fix warnings about changing types on assignment.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40963
diff changeset
488 GPluginManager *manager = NULL;
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
489
40532
1079a910beff Update for new gplugin_init signature
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
490 gplugin_init(GPLUGIN_CORE_FLAGS_NONE);
37495
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
491
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
492 manager = gplugin_manager_get_default();
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
493
41169
4103b3869912 Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents: 41008
diff changeset
494 gplugin_manager_append_paths_from_environment(manager,
4103b3869912 Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents: 41008
diff changeset
495 "PURPLE_PLUGIN_PATH");
37495
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
496
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
497 gplugin_manager_add_default_paths(manager);
36937
c6a5ce2be21b Call gplugin_manager_add_default_paths() from purple_plugins_init
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
498
38834
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
499 if(!g_getenv("PURPLE_PLUGINS_SKIP")) {
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
500 gplugin_manager_append_path(manager, PURPLE_LIBDIR);
38834
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
501 } else {
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
502 purple_debug_info("plugins", "PURPLE_PLUGINS_SKIP environment variable set, skipping normal plugin paths");
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
503 }
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
504
41008
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
505 g_signal_connect(manager, "loading-plugin",
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
506 G_CALLBACK(plugin_loading_cb), NULL);
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
507 g_signal_connect(manager, "loaded-plugin",
dc06703548a1 Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
508 G_CALLBACK(plugin_loaded_cb), NULL);
40940
f8b982789e1e Remove purple_plugins_get_handle and the associated signals
Gary Kramlich <grim@reaperworld.com>
parents: 40544
diff changeset
509 g_signal_connect(manager, "unloading-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
510 G_CALLBACK(plugin_unloading_cb), NULL);
40940
f8b982789e1e Remove purple_plugins_get_handle and the associated signals
Gary Kramlich <grim@reaperworld.com>
parents: 40544
diff changeset
511 g_signal_connect(manager, "unloaded-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
512 G_CALLBACK(plugin_unloaded_cb), NULL);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
513
36503
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
514 purple_plugins_refresh();
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
515 }
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
516
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
517 void
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
518 purple_plugins_uninit(void)
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
519 {
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
520 purple_debug_info("plugins", "Unloading all plugins\n");
36468
64d359bbe6f6 Removed purple_plugins_unload_all() from the API
Ankit Vani <a@nevitus.org>
parents: 36467
diff changeset
521 while (loaded_plugins != NULL)
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
522 purple_plugin_unload(loaded_plugins->data, NULL);
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
523
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
524 gplugin_uninit();
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
525 }

mercurial