comparison plugins/ChangeLog @ 1047:ece2d1543b20

[gaim-migrate @ 1057] Plugins now use GModule. Protocol plugins can be dynamically updated. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 01 Nov 2000 22:30:36 +0000
parents daad2440a642
children 4ebde910e95c
comparison
equal deleted inserted replaced
1046:4593605da0e2 1047:ece2d1543b20
1 version 0.11.0: 1 version 0.11.0:
2 Gaim is now multi-connection based. This represents a significant 2 Gaim is now multi-connection based. This represents a significant
3 change. Most of the code was modified, though most of the modifications 3 change. Most of the code was modified, though most of the modifications
4 were small (referencing an int as part of a struct as opposed to as a 4 were small (referencing an int as part of a struct as opposed to as a
5 global int). Such changes will require most plugins to be modified to 5 global int). Plugins need to be modified to match the new function
6 match the new function declarations and such. 6 declarations and such.
7 7
8 The plugin system itself was only slightly modified. However, the 8 Gaim now uses GModule from the GLib library for plugins. This brings
9 arguments passed to signal handlers have been modified in some cases. 9 a few changes. gaim_plugin_init is now passed a GModule *, which it
10 Look at the updates SIGNALS file to see what the new arguments passed 10 should use for all of its callbacks. gaim_plugin_init now returns
11 to your handlers are. In some cases the only change necessary will be 11 char * instead of int instead of void. If gaim_plugin_init returns
12 to modify the function declaration; in many cases the changes will be 12 NULL then gaim assumes everything was OK and proceeds. Otherwise, it
13 much more substantial. The only thing really to say here is that there 13 displays the error message and unloads your plugin. There is no more
14 is no more event_blist_update. This event may make a comeback, but 14 gaim_plugin_error (at least, that gaim itself will use. You may wish
15 that seems doubtful at this point. The good news is that you shouldn't 15 to simply return gaim_plugin_error() in gaim_plugin_init).
16 need it anymore anyway. 16
17 Because gaim now uses GModule, plugins are opened with RTLD_GLOBAL. I
18 had previously wanted to avoid this, but there are simply too many
19 benefits gained from using GModule to reject it for this reason. This
20 means that plugins can now call each other's functions. Beware, this
21 has good and bad implications. If you call a function, it will look
22 first in your plugin, and then in gaim's global symbol table, including
23 other plugins.
17 24
18 The new system allows for protocol plugins. New protocols (including 25 The new system allows for protocol plugins. New protocols (including
19 Yahoo, MSN, IRC, ICQ, etc) can be loaded dynamically. However, most 26 Yahoo, MSN, IRC, ICQ, etc) can be loaded dynamically. However, most
20 of these plugins are going to be controlled by the gaim maintainers. 27 of these plugins are going to be controlled by the gaim maintainers.
21 If you have interest in writing a protocol plugin, please talk to one 28 If you have interest in writing a protocol plugin, please talk to one