Wed, 25 Oct 2023 20:26:35 -0500
Fix possible clash of config headers
Both GLib and GStreamer have a config file called `config.h` and use the `HAVE_CONFIG_H` macro to conditionally include them.
Normally, this works out fine, but if they are subprojects, we may accidentally trigger including a different `config.h`. This is normally harmless, but it causes a bunch of warnings because we define `GETTEXT_PACKAGE` on the command-line, and it won't match the one in a different project.
However, we only include this file in source files, not headers, and it's always created, so there's no need to conditionally include it or define the macro. We can also rename it so it can't clash with other instances as well.
Testing Done:
Compiled with subprojects and stopped seeing many warnings about `GETTEXT_PACKAGE` and other generic variables being re-defined due to GStreamer's `config.h`.
Reviewed at https://reviews.imfreedom.org/r/2707/
| 5205 | 1 | /* |
| 15884 | 2 | * purple |
| 5205 | 3 | * |
| 15884 | 4 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 6 | * source distribution. | |
| 5205 | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | |
| 9 | * it under the terms of the GNU General Public License as published by | |
| 10 | * the Free Software Foundation; either version 2 of the License, or | |
| 11 | * (at your option) any later version. | |
| 12 | * | |
| 13 | * This program is distributed in the hope that it will be useful, | |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 | * GNU General Public License for more details. | |
| 17 | * | |
| 18 | * You should have received a copy of the GNU General Public License | |
| 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 | 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 | |
|
42410
563e7a17c220
Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42193
diff
changeset
|
23 | #include <purpleconfig.h> |
|
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
|
24 | |
|
42410
563e7a17c220
Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42193
diff
changeset
|
25 | #include <glib/gi18n-lib.h> |
|
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
|
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" |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
31 | #include "purplenotification.h" |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
32 | #include "purplenotificationmanager.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
|
33 | #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
|
34 | #include "util.h" |
|
41877
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
35 | #ifdef _WIN32 |
|
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
36 | #include "win32/win32dep.h" |
|
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
37 | #endif |
| 5205 | 38 | |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
39 | /************************************************************************** |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
40 | * Globals |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
41 | **************************************************************************/ |
| 36397 | 42 | static GList *loaded_plugins = NULL; |
| 43 | static GList *plugins_to_disable = NULL; | |
|
10682
c293ad49121e
[gaim-migrate @ 12228]
Richard Laager <rlaager@pidgin.im>
parents:
10504
diff
changeset
|
44 | |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
45 | /************************************************************************** |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
46 | * Plugin API |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
47 | **************************************************************************/ |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
48 | static gboolean |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
49 | plugin_loading_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin, |
|
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
50 | GError **error, G_GNUC_UNUSED gpointer data) |
|
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 | PurplePluginInfo *info; |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
53 | const gchar *info_error = NULL; |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
54 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
55 | 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
|
56 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
57 | 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
|
58 | 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
|
59 | return TRUE; /* a GPlugin internal plugin */ |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
60 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
61 | 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
|
62 | if(info_error != NULL) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
63 | 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
|
64 | 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
|
65 | filename, |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
66 | 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
|
67 | |
|
1ebd4a8f2b4a
Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents:
36508
diff
changeset
|
68 | 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
|
69 | "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
|
70 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
71 | g_free(filename); |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
72 | 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
|
73 | } |
|
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
|
74 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
75 | 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
|
76 | } |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
77 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
78 | static void |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
79 | plugin_loaded_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *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
|
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 | PurplePluginInfo *info; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
82 | gchar *filename; |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
83 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
84 | 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
|
85 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
86 | 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
|
87 | 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
|
88 | return; /* a GPlugin internal plugin */ |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
89 | |
|
37008
9dca610b3bf2
Prepend newly-loaded plugins to the loaded list
Ankit Vani <a@nevitus.org>
parents:
37001
diff
changeset
|
90 | loaded_plugins = g_list_prepend(loaded_plugins, plugin); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
91 | filename = gplugin_plugin_get_filename(plugin); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
92 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
93 | 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
|
94 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
95 | 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
|
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 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
98 | static gboolean |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
99 | plugin_unloading_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin, |
|
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
100 | G_GNUC_UNUSED GError **error, G_GNUC_UNUSED gpointer data) |
|
36859
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 | PurplePluginInfo *info; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
103 | 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
|
104 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
105 | 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
|
106 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
107 | 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
|
108 | if (info) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
109 | 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
|
110 | purple_debug_info("plugins", "Unloading plugin %s\n", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
111 | filename); |
|
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
112 | 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
|
113 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
114 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
115 | return TRUE; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
116 | } |
|
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 | static void |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
119 | plugin_unloaded_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
120 | { |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
121 | PurplePluginInfo *info; |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
122 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
123 | 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
|
124 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
125 | 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
|
126 | 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
|
127 | return; /* a GPlugin internal plugin */ |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
128 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
129 | /* cancel any pending dialogs the plugin has */ |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
130 | purple_request_close_with_handle(plugin); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
131 | purple_notify_close_with_handle(plugin); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
132 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
133 | 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
|
134 | purple_signals_unregister_by_instance(plugin); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
135 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
136 | 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
|
137 | |
| 36397 | 138 | loaded_plugins = g_list_remove(loaded_plugins, plugin); |
| 139 | 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
|
140 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
141 | 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
|
142 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
143 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
144 | gboolean |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
145 | 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
|
146 | { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
147 | 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
|
148 | GError *err = NULL; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
149 | 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
|
150 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
151 | 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
|
152 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
153 | 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
|
154 | 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
|
155 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
156 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
157 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
158 | 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
|
159 | 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
|
160 | 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
|
161 | filename, |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
162 | 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
|
163 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
164 | g_propagate_error(error, err); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
165 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
166 | 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
|
167 | 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
|
168 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
169 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
170 | 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
|
171 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
172 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
173 | gboolean |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
174 | 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
|
175 | { |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
176 | GError *err = NULL; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
177 | gchar *filename; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
178 | 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
|
179 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
180 | 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
|
181 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
182 | 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
|
183 | 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
|
184 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
185 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
186 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
187 | 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
|
188 | 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
|
189 | 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
|
190 | filename, |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
191 | 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
|
192 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
193 | g_propagate_error(error, err); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
194 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
195 | 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
|
196 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
197 | 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
|
198 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
199 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
200 | return TRUE; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
201 | } |
|
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 | gboolean |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
204 | purple_plugin_is_loaded(PurplePlugin *plugin) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
205 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
206 | 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
|
207 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
208 | 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
|
209 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
210 | |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
211 | PurplePluginInfo * |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
212 | purple_plugin_get_info(PurplePlugin *plugin) |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
213 | { |
| 36432 | 214 | GPluginPluginInfo *info; |
| 215 | ||
| 216 | g_return_val_if_fail(plugin != NULL, NULL); | |
| 217 | ||
| 218 | 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
|
219 | |
|
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
220 | /* 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
|
221 | * 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
|
222 | * 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
|
223 | * 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
|
224 | g_object_unref(info); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
225 | |
|
36654
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
226 | if (PURPLE_IS_PLUGIN_INFO(info)) |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
227 | return PURPLE_PLUGIN_INFO(info); |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
228 | else |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
229 | return NULL; |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
230 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
231 | |
|
36396
add1d5e2314c
Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
232 | 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
|
233 | 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
|
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 | 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
|
236 | |
|
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
|
237 | 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
|
238 | 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
|
239 | } |
|
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
|
240 | |
|
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
|
241 | gboolean |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
242 | 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
|
243 | { |
|
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
|
244 | PurplePluginInfo *info; |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
245 | |
|
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
246 | 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
|
247 | |
|
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
|
248 | 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
|
249 | 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
|
250 | return TRUE; |
|
36472
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
251 | |
|
36654
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
252 | return (purple_plugin_info_get_flags(info) & |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
253 | 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
|
254 | } |
|
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
255 | |
|
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
|
256 | GSList * |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
257 | purple_plugin_get_dependent_plugins(G_GNUC_UNUSED 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
|
258 | { |
|
36986
2326ab164e3a
Add reminders to display perl and tcl status in gtkdialog when API available
Ankit Vani <a@nevitus.org>
parents:
36976
diff
changeset
|
259 | #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
|
260 | return NULL; |
| 36397 | 261 | } |
| 262 | ||
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
263 | /************************************************************************** |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
264 | * Plugins API |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
265 | **************************************************************************/ |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
266 | 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
|
267 | purple_plugins_find_all(void) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
268 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
269 | GList *ret = NULL, *ids, *l; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
270 | GSList *plugins, *ll; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
271 | GPluginManager *manager = gplugin_manager_get_default(); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
272 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
273 | ids = gplugin_manager_list_plugins(manager); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
274 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
275 | 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
|
276 | 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
|
277 | |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
278 | 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
|
279 | 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
|
280 | 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
|
281 | 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
|
282 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
283 | |
|
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
|
284 | 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
|
285 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
286 | g_list_free(ids); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
287 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
288 | return ret; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
289 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
290 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
291 | GList * |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
292 | purple_plugins_get_loaded(void) |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
293 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
294 | return loaded_plugins; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
295 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
296 | |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
297 | void |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
298 | purple_plugins_add_search_path(const gchar *path) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
299 | { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
300 | GPluginManager *manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
301 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
302 | gplugin_manager_append_path(manager, path); |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
303 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
304 | |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
305 | void |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
306 | purple_plugins_refresh(void) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
307 | { |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
308 | GList *plugins, *l; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
309 | GPluginManager *manager = gplugin_manager_get_default(); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
310 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
311 | gplugin_manager_refresh(manager); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
312 | |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
313 | plugins = purple_plugins_find_all(); |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
314 | for (l = plugins; l != NULL; l = l->next) { |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
315 | 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
|
316 | PurplePluginInfo *info; |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
317 | PurplePluginInfoFlags flags; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
318 | 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
|
319 | |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
320 | if (purple_plugin_is_loaded(plugin)) |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
321 | continue; |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
322 | |
|
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
|
323 | 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
|
324 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
325 | unloaded = purple_plugin_info_get_unloaded(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
326 | flags = purple_plugin_info_get_flags(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
327 | if (!unloaded && flags & PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
328 | gchar *filename = gplugin_plugin_get_filename(plugin); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
329 | purple_debug_info("plugins", "Auto-loading plugin %s\n", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
330 | filename); |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
331 | purple_plugin_load(plugin, NULL); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
332 | g_free(filename); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
333 | } |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
334 | } |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
335 | |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
336 | g_list_free(plugins); |
|
36429
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 | |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
339 | PurplePlugin * |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
340 | purple_plugins_find_plugin(const gchar *id) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
341 | { |
| 36432 | 342 | PurplePlugin *plugin; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
343 | GPluginManager *manager = NULL; |
| 36432 | 344 | |
| 345 | g_return_val_if_fail(id != NULL && *id != '\0', NULL); | |
| 346 | ||
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
347 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
348 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
349 | 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
|
350 | |
|
37178
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
351 | if (!plugin) |
|
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
352 | return NULL; |
|
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
353 | |
|
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
|
354 | /* 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
|
355 | * 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
|
356 | * 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
|
357 | * subsystem is uninitialized. */ |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
358 | g_object_unref(plugin); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
359 | |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
360 | return plugin; |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
361 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
362 | |
|
36428
ba8ead8477cb
Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents:
36412
diff
changeset
|
363 | PurplePlugin * |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
364 | purple_plugins_find_by_filename(const char *filename) |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
365 | { |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
366 | GList *plugins, *l; |
| 36432 | 367 | |
| 368 | g_return_val_if_fail(filename != NULL && *filename != '\0', NULL); | |
| 369 | ||
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
370 | plugins = purple_plugins_find_all(); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
371 | |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
372 | 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
|
373 | PurplePlugin *plugin = PURPLE_PLUGIN(l->data); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
374 | 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
|
375 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
376 | if (purple_strequal(plugin_filename, filename)) { |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
377 | g_list_free(plugins); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
378 | g_free(plugin_filename); |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
379 | 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
|
380 | } |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
381 | g_free(plugin_filename); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
382 | } |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
383 | g_list_free(plugins); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
384 | |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
385 | return NULL; |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
386 | } |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
387 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
388 | void |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
389 | 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
|
390 | { |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
391 | GList *pl; |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
392 | GList *files = NULL; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
393 | |
| 36432 | 394 | g_return_if_fail(key != NULL && *key != '\0'); |
| 395 | ||
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
396 | 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
|
397 | 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
|
398 | 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
|
399 | if (!info) |
|
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
400 | continue; |
|
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
401 | |
|
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
|
402 | 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
|
403 | PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
404 | continue; |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
405 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
406 | 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
|
407 | files = g_list_append( |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
408 | files, |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
409 | (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
|
410 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
411 | |
|
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
|
412 | purple_prefs_set_path_list(key, files); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
413 | 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
|
414 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
415 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
416 | void |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
417 | 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
|
418 | { |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
419 | GList *l, *files; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
420 | |
| 36432 | 421 | 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
|
422 | |
|
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
|
423 | 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
|
424 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
425 | 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
|
426 | { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
427 | PurplePlugin *plugin; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
428 | GError *error = NULL; |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
429 | char *file; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
430 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
431 | if (l->data == NULL) |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
432 | continue; |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
433 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
434 | file = l->data; |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
435 | 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
|
436 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
437 | if (plugin) { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
438 | purple_debug_info("plugins", "Loading saved plugin %s", file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
439 | purple_plugin_load(plugin, &error); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
440 | } else { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
441 | error = g_error_new(PURPLE_PLUGINS_DOMAIN, 0, |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
442 | _("Unable to find saved plugin %s"), file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
443 | purple_debug_error("plugins", "Unable to find saved plugin %s", file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
444 | } |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
445 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
446 | if(error != NULL) { |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
447 | PurpleNotification *notification = NULL; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
448 | PurpleNotificationManager *manager = NULL; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
449 | char *msg = NULL; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
450 | char *title = NULL; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
451 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
452 | if(error->message != NULL) { |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
453 | msg = g_strdup(error->message); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
454 | } else { |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
455 | msg = g_strdup(_("Unknown error")); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
456 | } |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
457 | g_clear_error(&error); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
458 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
459 | notification = purple_notification_new(PURPLE_NOTIFICATION_TYPE_GENERIC, |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
460 | NULL, msg, g_free); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
461 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
462 | purple_notification_set_icon_name(notification, |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
463 | "dialog-error-symbolic"); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
464 | title = g_strdup_printf(_("Failed to load saved plugin %s"), file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
465 | purple_notification_set_title(notification, title); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
466 | g_free(title); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
467 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
468 | manager = purple_notification_manager_get_default(); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
469 | purple_notification_manager_add(manager, notification); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
470 | } |
|
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
|
471 | |
|
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
|
472 | 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
|
473 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
474 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
475 | 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
|
476 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
477 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
478 | /************************************************************************** |
|
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
|
479 | * 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
|
480 | **************************************************************************/ |
|
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
|
481 | void |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
482 | purple_plugins_init(void) |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
483 | { |
|
40978
2cb285cacbfd
Fix warnings about changing types on assignment.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40963
diff
changeset
|
484 | 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
|
485 | |
|
40532
1079a910beff
Update for new gplugin_init signature
Gary Kramlich <grim@reaperworld.com>
parents:
40441
diff
changeset
|
486 | gplugin_init(GPLUGIN_CORE_FLAGS_NONE); |
|
37495
f28a27411235
Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents:
37178
diff
changeset
|
487 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
488 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
489 | |
|
41169
4103b3869912
Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents:
41008
diff
changeset
|
490 | gplugin_manager_append_paths_from_environment(manager, |
|
4103b3869912
Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents:
41008
diff
changeset
|
491 | "PURPLE_PLUGIN_PATH"); |
|
37495
f28a27411235
Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents:
37178
diff
changeset
|
492 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
493 | 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
|
494 | |
|
38834
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
495 | if(!g_getenv("PURPLE_PLUGINS_SKIP")) { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
496 | 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
|
497 | } else { |
|
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
498 | 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
|
499 | } |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
500 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
501 | g_signal_connect(manager, "loading-plugin", |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
502 | G_CALLBACK(plugin_loading_cb), NULL); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
503 | g_signal_connect(manager, "loaded-plugin", |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
504 | 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
|
505 | 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
|
506 | 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
|
507 | 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
|
508 | 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
|
509 | |
|
36503
bdaf9e0edf5c
Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents:
36499
diff
changeset
|
510 | 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
|
511 | } |
|
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
|
512 | |
|
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
|
513 | 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
|
514 | 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
|
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 | 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
|
517 | while (loaded_plugins != NULL) |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
518 | 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
|
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 | 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
|
521 | } |