Mercurial > pidgin
view plugins/gaiminc.c @ 9328:33e6b2b92cfe
[gaim-migrate @ 10136]
"Initial Comment:
This fixes a few more bugs, patches up some memory
leaks, and adds things to the todo list:
Uncomment and fix handle_unknown to print debug info for
unhandled zephyrs.
Fix triple_subset for some odd cases class "*" and
recipient "*" only match themselves.
Notifies when a message to chat fails.
Zephyrs to <message,personal,recipient> (where
recipient!=username), now get treated as chat messages,
instead of IM's.
Incoming IM's from user@thisrealm appear from user
instead of user@thisrealm.
Sets the default sending instance for chats to
"PERSONAL" if not specified or set to * (wildcard) for
compatibility with zwrite.
Add miscellaneous code comments.
Joining chats from a buddy list does the right thing
when the instance or recipient aren't specified.
When joining chats from a dialog box (or buddy list),
new messages sent from that chat window caused a second
nonfunctional window for the same chat to popup. This
is fixed here." --Arun A Tharuvai
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sun, 20 Jun 2004 14:46:24 +0000 |
parents | 8f838ae3e710 |
children | 4d05b6e9e9cd |
line wrap: on
line source
#include "internal.h" #include "plugin.h" #include "account.h" #include "connection.h" #include "conversation.h" /* include UI for show_about() */ #include "gtkplugin.h" #include "ui.h" #define GAIMINC_PLUGIN_ID "core-gaiminc" static void echo_hi(GaimConnection *gc) { /* this doesn't do much, just lets you know who we are :) */ show_about(NULL, NULL); } static gboolean reverse(GaimAccount *account, char **who, char **message, int *flags) { /* this will drive you insane. whenever you receive a message, * the text of the message (HTML and all) will be reversed. */ int i, l; char tmp; /* this check is necessary in case bad plugins do bad things */ if (message == NULL || *message == NULL) return FALSE; l = strlen(*message); if (!strcmp(*who, gaim_account_get_username(account))) return FALSE; for (i = 0; i < l/2; i++) { tmp = (*message)[i]; (*message)[i] = (*message)[l - i - 1]; (*message)[l - i - 1] = tmp; } return FALSE; } static void bud(GaimBuddy *who) { GaimAccount *acct = who->account; GaimConversation *conv = gaim_conversation_new(GAIM_CONV_IM, acct, who->name); gaim_conv_im_send(GAIM_CONV_IM(conv), "Hello!"); } /* * EXPORTED FUNCTIONS */ static gboolean plugin_load(GaimPlugin *plugin) { /* this is for doing something fun when we sign on */ gaim_signal_connect(gaim_connections_get_handle(), "signed-on", plugin, GAIM_CALLBACK(echo_hi), NULL); /* this is for doing something fun when we get a message */ gaim_signal_connect(gaim_conversations_get_handle(), "receiving-im-msg", plugin, GAIM_CALLBACK(reverse), NULL); /* this is for doing something fun when a buddy comes online */ gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", plugin, GAIM_CALLBACK(bud), NULL); return TRUE; } static GaimPluginInfo info = { GAIM_PLUGIN_API_VERSION, /**< api_version */ GAIM_PLUGIN_STANDARD, /**< type */ NULL, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ GAIM_PRIORITY_DEFAULT, /**< priority */ GAIMINC_PLUGIN_ID, /**< id */ N_("Gaim Demonstration Plugin"), /**< name */ VERSION, /**< version */ /** summary */ N_("An example plugin that does stuff - see the description."), /** description */ N_("This is a really cool plugin that does a lot of stuff:\n" "- It tells you who wrote the program when you log in\n" "- It reverses all incoming text\n" "- It sends a message to people on your list immediately" " when they sign on"), "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ GAIM_WEBSITE, /**< homepage */ plugin_load, /**< load */ NULL, /**< unload */ NULL, /**< destroy */ NULL, /**< ui_info */ NULL /**< extra_info */ }; static void init_plugin(GaimPlugin *plugin) { } GAIM_INIT_PLUGIN(gaiminc, init_plugin, info)