Mercurial > pidgin
annotate plugins/perl/common/Plugin.xs @ 13158:eed97963252a
[gaim-migrate @ 15521]
I think this'll fix a crash that hit me last night. What happened was,
Gaim couldn't fetch the buddy list on the first attempt. It set up a
timer to do it 30 seconds later. The timer callback set the reference
to the timer to 0, so Gaim was not able to remove the timer. Then at
some point I got disconnected and the timer callback got called and
exploded.
Unfortunately, I have a feeling this hit everyone using either of
the betas.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 07 Feb 2006 14:51:28 +0000 |
parents | e0629444c455 |
children |
rev | line source |
---|---|
11118 | 1 #include "module.h" |
2 | |
3 MODULE = Gaim::Plugin PACKAGE = Gaim::Plugin PREFIX = gaim_plugin_ | |
4 PROTOTYPES: ENABLE | |
5 | |
6 Gaim::Plugin | |
7 gaim_plugin_new(native, path) | |
8 gboolean native | |
9 const char *path | |
10 | |
11 Gaim::Plugin | |
12 gaim_plugin_probe(filename) | |
13 const char *filename | |
14 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
15 gboolean |
11118 | 16 gaim_plugin_register(plugin) |
17 Gaim::Plugin plugin | |
18 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
19 gboolean |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
20 gaim_plugin_load(plugin) |
11118 | 21 Gaim::Plugin plugin |
22 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
23 gboolean |
11118 | 24 gaim_plugin_unload(plugin) |
25 Gaim::Plugin plugin | |
26 | |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
27 gboolean |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
28 gaim_plugin_reload(plugin) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
29 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
30 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
31 void |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
32 gaim_plugin_destroy(plugin) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
33 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
34 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
35 gboolean |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
36 gaim_plugin_is_loaded(plugin) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
37 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
38 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
39 gboolean |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
40 gaim_plugin_is_unloadable(plugin) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
41 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
42 |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
43 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
44 gaim_plugin_get_id(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
45 Gaim::Plugin plugin |
11118 | 46 |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
47 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
48 gaim_plugin_get_name(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
49 Gaim::Plugin plugin |
11118 | 50 |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
51 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
52 gaim_plugin_get_version(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
53 Gaim::Plugin plugin |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
54 |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
55 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
56 gaim_plugin_get_summary(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
57 Gaim::Plugin plugin |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
58 |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
59 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
60 gaim_plugin_get_description(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
61 Gaim::Plugin plugin |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
62 |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
63 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
64 gaim_plugin_get_author(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
65 Gaim::Plugin plugin |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
66 |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
67 const gchar * |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
68 gaim_plugin_get_homepage(plugin) |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
69 Gaim::Plugin plugin |
11118 | 70 |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
71 MODULE = Gaim::Plugin PACKAGE = Gaim::Plugin::IPC PREFIX = gaim_plugin_ipc_ |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
72 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
73 void |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
74 gaim_plugin_ipc_unregister(plugin, command) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
75 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
76 const char *command |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
77 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
78 void |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
79 gaim_plugin_ipc_unregister_all(plugin) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
80 Gaim::Plugin plugin |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
81 |
11118 | 82 MODULE = Gaim::Plugin PACKAGE = Gaim::Plugins PREFIX = gaim_plugins_ |
83 PROTOTYPES: ENABLE | |
84 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
85 void |
11118 | 86 gaim_plugins_add_search_path(path) |
87 const char *path | |
88 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
89 void |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
90 gaim_plugins_unload_all() |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
91 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
92 void |
11118 | 93 gaim_plugins_destroy_all() |
94 | |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
95 void |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
96 gaim_plugins_load_saved(key) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
97 const char *key |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
98 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
99 void |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
100 gaim_plugins_probe(ext) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
101 const char *ext |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
102 |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
103 gboolean |
11118 | 104 gaim_plugins_enabled() |
105 | |
106 Gaim::Plugin | |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
107 gaim_plugins_find_with_name(name) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
108 const char *name |
11118 | 109 |
110 Gaim::Plugin | |
111 gaim_plugins_find_with_filename(filename) | |
112 const char *filename | |
113 | |
114 Gaim::Plugin | |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
115 gaim_plugins_find_with_basename(basename) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
116 const char *basename |
11118 | 117 |
118 Gaim::Plugin | |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
119 gaim_plugins_find_with_id(id) |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
120 const char *id |
11118 | 121 |
122 void | |
123 gaim_plugins_get_loaded() | |
124 PREINIT: | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
125 GList *l; |
11118 | 126 PPCODE: |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
127 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
128 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Plugin"))); |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
129 } |
11118 | 130 |
131 void | |
132 gaim_plugins_get_protocols() | |
133 PREINIT: | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
134 GList *l; |
11118 | 135 PPCODE: |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
136 for (l = gaim_plugins_get_protocols(); l != NULL; l = l->next) { |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
137 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Plugin"))); |
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
138 } |
11118 | 139 |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
140 void |
12890
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
141 gaim_plugins_get_all() |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
142 PREINIT: |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
143 GList *l; |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
144 PPCODE: |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
145 for (l = gaim_plugins_get_all(); l != NULL; l = l->next) { |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
146 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Plugin"))); |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
147 } |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
148 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
149 void * |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
150 gaim_plugins_get_handle() |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
151 |
e0629444c455
[gaim-migrate @ 15243]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12788
diff
changeset
|
152 void |
11118 | 153 gaim_plugins_init() |
154 | |
12788
4cf2094256b0
[gaim-migrate @ 15135]
Etan Reisner <pidgin@unreliablesource.net>
parents:
11290
diff
changeset
|
155 void |
11118 | 156 gaim_plugins_uninit() |