Mercurial > pidgin
annotate plugins/gaiminc.c @ 13849:8d1c55309e3c
[gaim-migrate @ 16306]
Keep track of the Yahoo! IMVironment specified by the people we're
IMing with. When we reply to their IMs, we now send the same IMVironment
instead of always sending an empty IMVironment because sending an
empty IMVironment would reset their IMVironment back to nothing.
This shouldn't negatively affect the Doodle stuff... but it didn't
work for me when I tested it, so it's hard to tell.
This is a change I made while at Meebo
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 22 Jun 2006 06:26:38 +0000 |
parents | f5bc36ecf8d0 |
children |
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 :) */ |
13470
f5bc36ecf8d0
[gaim-migrate @ 15846]
Richard Laager <rlaager@wiktel.com>
parents:
11338
diff
changeset
|
19 gaim_gtkdialogs_about(); |
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; |
11338 | 52 GaimConversation *conv = gaim_conversation_new(GAIM_CONV_TYPE_IM, acct, who->name); |
7746 | 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 */ | |
13470
f5bc36ecf8d0
[gaim-migrate @ 15846]
Richard Laager <rlaager@wiktel.com>
parents:
11338
diff
changeset
|
109 NULL, /**< extra_info */ |
f5bc36ecf8d0
[gaim-migrate @ 15846]
Richard Laager <rlaager@wiktel.com>
parents:
11338
diff
changeset
|
110 NULL, /**< prefs_info */ |
f5bc36ecf8d0
[gaim-migrate @ 15846]
Richard Laager <rlaager@wiktel.com>
parents:
11338
diff
changeset
|
111 NULL /**< actions */ |
5255 | 112 }; |
113 | |
114 static void | |
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5255
diff
changeset
|
115 init_plugin(GaimPlugin *plugin) |
5255 | 116 { |
3551 | 117 } |
118 | |
6063 | 119 GAIM_INIT_PLUGIN(gaiminc, init_plugin, info) |