Mercurial > pidgin
annotate plugins/gaiminc.c @ 10261:d4e9ff2edc4e
[gaim-migrate @ 11405]
This should fix segfault bug 1072604. Oops.
committer: Tailor Script <tailor@pidgin.im>
| author | Tim Ringenbach <marv@pidgin.im> |
|---|---|
| date | Thu, 25 Nov 2004 18:35:26 +0000 |
| parents | 60db14d54914 |
| children | 17142948653e |
| rev | line source |
|---|---|
| 7746 | 1 #include "internal.h" |
| 2 #include "plugin.h" | |
| 3 | |
| 4 #include "account.h" | |
| 5 #include "connection.h" | |
| 6 #include "conversation.h" | |
| 9954 | 7 #include "version.h" |
| 7746 | 8 |
| 9753 | 9 /* include UI for gaim_gtkdialogs_about() */ |
| 7746 | 10 #include "gtkplugin.h" |
| 9709 | 11 #include "gtkdialogs.h" |
| 91 | 12 |
| 5255 | 13 #define GAIMINC_PLUGIN_ID "core-gaiminc" |
| 14 | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
15 static void |
| 7746 | 16 echo_hi(GaimConnection *gc) |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
17 { |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
18 /* this doesn't do much, just lets you know who we are :) */ |
| 9753 | 19 gaim_gtkdialogs_about(NULL, NULL); |
| 91 | 20 } |
|
92
f3c6cf79f651
[gaim-migrate @ 102]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
91
diff
changeset
|
21 |
| 7746 | 22 static gboolean |
| 10104 | 23 reverse(GaimAccount *account, char **who, char **message, |
| 24 GaimConversation *conv, int *flags) | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
25 { |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
26 /* this will drive you insane. whenever you receive a message, |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
27 * the text of the message (HTML and all) will be reversed. */ |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
28 int i, l; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
29 char tmp; |
|
99
f810fc7d423f
[gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
96
diff
changeset
|
30 |
|
f810fc7d423f
[gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
96
diff
changeset
|
31 /* this check is necessary in case bad plugins do bad things */ |
|
f810fc7d423f
[gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
96
diff
changeset
|
32 if (message == NULL || *message == NULL) |
| 7746 | 33 return FALSE; |
|
99
f810fc7d423f
[gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
96
diff
changeset
|
34 |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
35 l = strlen(*message); |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
36 |
| 7746 | 37 if (!strcmp(*who, gaim_account_get_username(account))) |
| 38 return FALSE; | |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
39 |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
40 for (i = 0; i < l/2; i++) { |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
41 tmp = (*message)[i]; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
42 (*message)[i] = (*message)[l - i - 1]; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
43 (*message)[l - i - 1] = tmp; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
44 } |
| 7746 | 45 return FALSE; |
|
92
f3c6cf79f651
[gaim-migrate @ 102]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
91
diff
changeset
|
46 } |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
47 |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
48 static void |
| 7746 | 49 bud(GaimBuddy *who) |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
50 { |
| 7746 | 51 GaimAccount *acct = who->account; |
| 52 GaimConversation *conv = gaim_conversation_new(GAIM_CONV_IM, acct, who->name); | |
| 53 | |
| 54 gaim_conv_im_send(GAIM_CONV_IM(conv), "Hello!"); | |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
55 } |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
56 |
| 5255 | 57 /* |
| 58 * EXPORTED FUNCTIONS | |
| 59 */ | |
| 60 | |
| 61 static gboolean | |
| 62 plugin_load(GaimPlugin *plugin) | |
| 63 { | |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
64 /* this is for doing something fun when we sign on */ |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
65 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
66 plugin, GAIM_CALLBACK(echo_hi), NULL); |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
67 |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
68 /* this is for doing something fun when we get a message */ |
| 8999 | 69 gaim_signal_connect(gaim_conversations_get_handle(), "receiving-im-msg", |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
70 plugin, GAIM_CALLBACK(reverse), NULL); |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
71 |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
72 /* this is for doing something fun when a buddy comes online */ |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
73 gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
74 plugin, GAIM_CALLBACK(bud), NULL); |
|
1047
ece2d1543b20
[gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
99
diff
changeset
|
75 |
| 5255 | 76 return TRUE; |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
92
diff
changeset
|
77 } |
|
96
247f540ea6e1
[gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
94
diff
changeset
|
78 |
| 5255 | 79 static GaimPluginInfo info = |
| 80 { | |
| 9954 | 81 GAIM_PLUGIN_MAGIC, |
| 82 GAIM_MAJOR_VERSION, | |
| 83 GAIM_MINOR_VERSION, | |
| 5255 | 84 GAIM_PLUGIN_STANDARD, /**< type */ |
| 85 NULL, /**< ui_requirement */ | |
| 86 0, /**< flags */ | |
| 87 NULL, /**< dependencies */ | |
| 88 GAIM_PRIORITY_DEFAULT, /**< priority */ | |
| 89 | |
| 90 GAIMINC_PLUGIN_ID, /**< id */ | |
| 91 N_("Gaim Demonstration Plugin"), /**< name */ | |
| 92 VERSION, /**< version */ | |
| 93 /** summary */ | |
| 94 N_("An example plugin that does stuff - see the description."), | |
| 95 /** description */ | |
| 96 N_("This is a really cool plugin that does a lot of stuff:\n" | |
| 97 "- It tells you who wrote the program when you log in\n" | |
| 98 "- It reverses all incoming text\n" | |
| 99 "- It sends a message to people on your list immediately" | |
| 100 " when they sign on"), | |
| 101 "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
102 GAIM_WEBSITE, /**< homepage */ |
| 5255 | 103 |
| 104 plugin_load, /**< load */ | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
105 NULL, /**< unload */ |
| 5255 | 106 NULL, /**< destroy */ |
| 107 | |
| 108 NULL, /**< ui_info */ | |
| 109 NULL /**< extra_info */ | |
| 110 }; | |
| 111 | |
| 112 static void | |
|
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5255
diff
changeset
|
113 init_plugin(GaimPlugin *plugin) |
| 5255 | 114 { |
| 3551 | 115 } |
| 116 | |
| 6063 | 117 GAIM_INIT_PLUGIN(gaiminc, init_plugin, info) |
