Mercurial > pidgin.yaz
diff 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 |
line wrap: on
line diff
--- a/plugins/ChangeLog Wed Nov 01 11:34:56 2000 +0000 +++ b/plugins/ChangeLog Wed Nov 01 22:30:36 2000 +0000 @@ -2,18 +2,25 @@ Gaim is now multi-connection based. This represents a significant change. Most of the code was modified, though most of the modifications were small (referencing an int as part of a struct as opposed to as a - global int). Such changes will require most plugins to be modified to - match the new function declarations and such. + global int). Plugins need to be modified to match the new function + declarations and such. - The plugin system itself was only slightly modified. However, the - arguments passed to signal handlers have been modified in some cases. - Look at the updates SIGNALS file to see what the new arguments passed - to your handlers are. In some cases the only change necessary will be - to modify the function declaration; in many cases the changes will be - much more substantial. The only thing really to say here is that there - is no more event_blist_update. This event may make a comeback, but - that seems doubtful at this point. The good news is that you shouldn't - need it anymore anyway. + Gaim now uses GModule from the GLib library for plugins. This brings + a few changes. gaim_plugin_init is now passed a GModule *, which it + should use for all of its callbacks. gaim_plugin_init now returns + char * instead of int instead of void. If gaim_plugin_init returns + NULL then gaim assumes everything was OK and proceeds. Otherwise, it + displays the error message and unloads your plugin. There is no more + gaim_plugin_error (at least, that gaim itself will use. You may wish + to simply return gaim_plugin_error() in gaim_plugin_init). + + Because gaim now uses GModule, plugins are opened with RTLD_GLOBAL. I + had previously wanted to avoid this, but there are simply too many + benefits gained from using GModule to reject it for this reason. This + means that plugins can now call each other's functions. Beware, this + has good and bad implications. If you call a function, it will look + first in your plugin, and then in gaim's global symbol table, including + other plugins. The new system allows for protocol plugins. New protocols (including Yahoo, MSN, IRC, ICQ, etc) can be loaded dynamically. However, most