Mercurial > pidgin
annotate plugins/error.c @ 3551:cd938f18f3f8
[gaim-migrate @ 3626]
In the interest of continued progress, I pulled what's usable out of my
development tree and am committing it.
Here, we have gotten rid of the plugins dialog and perl menu under Tools and
put them both in preferences. Perl scripts now work like plugins--you have
to load them explicitly (it will probe $prefix/lib/gaim and $HOME/.gaim for
them) and you can unload them (although right now, this is entirely unreliable)
Oh, and I broke all your perl scripts. Sorry about that. Don't try fixing
them yet, though--I'm gonna make unloading single scripts more reliable
tommorow.
I should also finish Phase Two tommorow as well.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Thu, 26 Sep 2002 07:37:52 +0000 |
parents | ece2d1543b20 |
children |
rev | line source |
---|---|
391 | 1 #define GAIM_PLUGINS |
2 #include "gaim.h" | |
3 | |
4 #include <stdlib.h> | |
5 #include <time.h> | |
6 | |
1047
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
7 char *gaim_plugin_error(int); |
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
8 |
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
9 char *gaim_plugin_init(GModule *handle) { |
391 | 10 int error; |
11 | |
12 /* so here, we load any callbacks, do the normal stuff */ | |
13 | |
14 srand(time(NULL)); | |
15 error = rand() % 3; | |
398
59d97cd251ff
[gaim-migrate @ 408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
396
diff
changeset
|
16 error -= 2; |
391 | 17 /* there's a 1 in 3 chance there *won't* be an error :) */ |
1047
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
18 return gaim_plugin_error(error); |
391 | 19 } |
20 | |
21 void gaim_plugin_remove() { | |
22 /* this only gets called if we get loaded successfully, and then | |
23 * unloaded. */ | |
24 } | |
25 | |
26 char *gaim_plugin_error(int error) { | |
27 /* by the time we've gotten here, all our callbacks are removed. | |
28 * we just have to deal with what the error was (as defined by us) | |
29 * and do any other clean-up stuff we need to do. */ | |
30 switch (error) { | |
398
59d97cd251ff
[gaim-migrate @ 408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
396
diff
changeset
|
31 case -1: |
1047
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
32 return "MY BAD"; |
398
59d97cd251ff
[gaim-migrate @ 408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
396
diff
changeset
|
33 case -2: |
391 | 34 return "Internal plugin error: exiting."; |
1047
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
35 default: |
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
398
diff
changeset
|
36 return NULL; |
391 | 37 } |
38 } | |
39 | |
3551 | 40 struct gaim_plugin_description desc; |
41 struct gaim_plugin_description *gaim_plugin_desc() { | |
42 desc.api_version = PLUGIN_API_VERSION; | |
43 desc.name = g_strdup("Error Tester"); | |
44 desc.version = g_strdup(VERSION); | |
45 desc.description = g_strdup("A plugin that causes error messages."); | |
46 desc.authors = g_strdup("Eric Warmehoven <eric@warmenhoven.org>"); | |
47 desc.url = g_strdup(WEBSITE); | |
48 return &desc; | |
49 } | |
50 | |
391 | 51 char *name() { |
396
b1d5c6ab7b0d
[gaim-migrate @ 406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
393
diff
changeset
|
52 return "Error Tester " VERSION ; |
391 | 53 } |
54 | |
55 char *description() { | |
56 return "A nice little program that causes error messages"; | |
57 } |