391
|
1 version 0.9.20:
|
|
2 It's 3 am the night before finals, it's obviously a good time to hack
|
|
3 gaim.
|
|
4
|
|
5 The first thing to note is that there are about 9 new events plugins
|
|
6 can attach to, most of them dealing with chat, since I know that was a
|
|
7 big thing that was missing. Please note that I was nice and decided to
|
|
8 tack these extra events onto the end of the enum, which means that
|
|
9 plugins do not have to be recompiled in order for them to still work.
|
|
10
|
|
11 The big thing to note is that gaim_plugin_init no longer returns void,
|
|
12 but int. If it returns 0, gaim interprets this as there being no
|
|
13 error, and continues with loading as normal. (This should be backwards-
|
|
14 compatible: returning 0 is the equivalent of returning void.) If it
|
|
15 returns a non-zero number, there was an error loading detected by the
|
|
16 plugin. At that point, gaim will try to clean things up by removing any
|
|
17 callbacks that have been added by the plugin. It will then try to call
|
|
18 the plugin's gaim_plugin_error function, if there is one. The function
|
|
19 should take an int (the int returned by gaim_plugin_init) and return a
|
|
20 char*. If the char* is not NULL, it is displayed by gaim as an error
|
|
21 message. The plugin is then unloaded and closed and life goes back to
|
|
22 normal. If any of that was confusing, it was confusing to me, too. I
|
|
23 added a plugin, error.c, which should help clear things up.
|