pidgin/purple-plugin-pack
Clone
Merge
2010-02-11, Richard Laager
--- a/.hgignore Thu Feb 11 17:15:39 2010 -0600
+++ b/.hgignore Thu Feb 11 17:16:25 2010 -0600
@@ -39,6 +39,7 @@
purple-plugin_pack-[0-9]+\.[0-9]+([Bb][Ee][Tt][Aa][0-9]+)?(mtn)?\/?
--- a/.hgtags Thu Feb 11 17:15:39 2010 -0600
+++ b/.hgtags Thu Feb 11 17:16:25 2010 -0600
@@ -16,3 +16,5 @@
daf127d4f26054304be01b0082b19c01e2c1bf5a pp_1_0
fa640f2d83a59e5b011c7b51cb09f3f89a33a286 v0.3
93089a7ce7f687cc8d5f2dd1572bf59a6a5fcb96 pp_2_6_0
+37b4d5feffd799622895bbdad63e5fb589d65de6 pp_2_6_1 +8089d47ebb06591479e1c997e5421410723a4602 pp_2_6_2 --- a/AUTHORS Thu Feb 11 17:15:39 2010 -0600
+++ b/AUTHORS Thu Feb 11 17:16:25 2010 -0600
@@ -39,13 +39,16 @@
--- a/ChangeLog Thu Feb 11 17:15:39 2010 -0600
+++ b/ChangeLog Thu Feb 11 17:16:25 2010 -0600
@@ -1,3 +1,35 @@
+ * Add support for Spidernet to IRC Helper plugin. + * Fix IRC More plugin not properly rejoining channels. + * IRC More no longer has a preference for auto rejoin delay--default to + * Splitter plugin now connects to signals with + PURPLE_SIGNAL_PRIORITY_HIGHEST, which makes it process messages last. + * Splitter will not touch any messages generated by the OTR plugin, + resolving compatibility issues. + * Splitter now resubmits split messages through the normal message + handling mechanisms in libpurple and tracks those resubmissions, meaning + splitting of messages will no longer bypass any other plugins + intercepting outgoing messages. + * /exec's author list no longer makes the Pidgin plugins dialog wider. + * Talkfilters is no longer a dependency of itself, allowing the plugin to + * Add support for limiting the number of bytes of history displayed by + the Enhanced History plugin. + * Add a preference to the Google plugin to allow users to specify a + Google domain to use. For example, www.google.com or www.google.fr. + * Fix the "Set User Modes On Connect" and "Unset User Modes On Connect" + settings provided by irc-more on IRC accounts. + * Fix Message Splitter so that it builds on Windows. + * Fix Group Message so that its request dialog doesn't get too long. + * Make IRC Helper suppress an additional message related to hostmasks. + * Fix the Colorize plugin to be UTF-8 compliant. * Fix grouping of radio buttons in switchspell menu for enchant-enabled
GtkSpell. This has the side effect of eliminating slow tab switching
--- a/Makefile.mingw Thu Feb 11 17:15:39 2010 -0600
+++ b/Makefile.mingw Thu Feb 11 17:16:25 2010 -0600
@@ -9,7 +9,7 @@
VERSION := $(shell cat ./VERSION)
-ALL_PLUGINS_LIST := $(shell python plugin_pack.py build_dirs purple,pidgin,gtkspell,aspell all)
+ALL_PLUGINS_LIST := $(shell python plugin_pack.py build_dirs purple,pidgin,gtkspell,aspell,cairo,pango all) --- a/VERSION Thu Feb 11 17:15:39 2010 -0600
+++ b/VERSION Thu Feb 11 17:16:25 2010 -0600
@@ -1,1 +1,1 @@
--- a/autogen.sh Thu Feb 11 17:15:39 2010 -0600
+++ b/autogen.sh Thu Feb 11 17:16:25 2010 -0600
@@ -47,8 +47,14 @@
###############################################################################
PACKAGE="Purple Plugin Pack"
--- a/autoprofile/comp_logstats.c Thu Feb 11 17:15:39 2010 -0600
+++ b/autoprofile/comp_logstats.c Thu Feb 11 17:16:25 2010 -0600
@@ -641,7 +641,7 @@
} else if (!strcmp (field, "total")) {
return max_date->sent_msgs + max_date->received_msgs;
- ap_debug ("logstats", "get-max: invalid paramater");
+ ap_debug ("logstats", "get-max: invalid parameter"); --- a/colorize/colorize.c Thu Feb 11 17:15:39 2010 -0600
+++ b/colorize/colorize.c Thu Feb 11 17:16:25 2010 -0600
@@ -115,17 +115,20 @@
colorize_message(char **message) {
gfloat d_grad[3], grad[3];
guint8 initial_rgb[3], target_rgb[3], last_rgb[3];
- gchar *formatted_char, *tmp, *new_msg;
g_return_if_fail(message != NULL);
g_return_if_fail(*message != NULL);
g_return_if_fail(**message != '\0');
+ g_return_if_fail(g_utf8_validate(*message, -1, NULL)); - new_msg = g_strdup("");
- len = strlen( *message );
+ len = g_utf8_strlen( *message, -1); + new_msg = g_string_sized_new(strlen( *message )); /* A decent starting size */ /* get colors from preferences */
initial_rgb[0] = (guint8)purple_prefs_get_int(PREFS_I_RED);
@@ -147,25 +150,22 @@
d_grad[2] = (gfloat)(target_rgb[2] - initial_rgb[2]) / (gfloat)len;
/* open initial font tag and format first character */
- formatted_char = g_strdup_printf("<font color=\"#%02x%02x%02x\">%c",
- round_gfloat_to_guint8(grad[0]),
- round_gfloat_to_guint8(grad[1]),
- round_gfloat_to_guint8(grad[2]),
- /* create a new string with the newly formatted char and free the old one */
- tmp = g_strconcat(new_msg, formatted_char, NULL);
- g_free(formatted_char);
+ ch = g_utf8_get_char(*message); + c = g_utf8_next_char(*message); + g_string_append_printf(new_msg, "<font color=\"#%02x%02x%02x\">", + round_gfloat_to_guint8(grad[0]), + round_gfloat_to_guint8(grad[1]), + round_gfloat_to_guint8(grad[2])); + g_string_append_unichar(new_msg, ch); /* format each character one by one:
- * (if it is not a space) AND
+ * (if it is printable and not a space -- this excludes LTR, control, and + * format characters) AND * (if it is not the same color as the last character)
+ for ( ; c && *c; c = g_utf8_next_char(c)) { + gunichar ch = g_utf8_get_char(c); last_rgb[0] = round_gfloat_to_guint8(grad[0]);
last_rgb[1] = round_gfloat_to_guint8(grad[1]);
@@ -177,31 +177,22 @@
/* format next character appropriately */
- if( g_ascii_isspace ( *(*message+i) ) ||
- rgb_equals(last_rgb, grad) )
- formatted_char = g_strdup_printf("%c", *(*message+i));
- formatted_char = g_strdup_printf("</font><font color=\"#%02x%02x%02x\">%c",
+ if ( g_unichar_isgraph( ch ) && !rgb_equals(last_rgb, grad) ) { + g_string_append_printf(new_msg, "</font><font color=\"#%02x%02x%02x\">", round_gfloat_to_guint8(grad[0]),
round_gfloat_to_guint8(grad[1]),
- round_gfloat_to_guint8(grad[2]),
+ round_gfloat_to_guint8(grad[2])); - /* create a new string with the newly formatted char and free the old one */
- tmp = g_strconcat(new_msg, formatted_char, NULL);
- g_free(formatted_char);
+ g_string_append_unichar(new_msg, ch); /* close final font tag */
- new_msg = g_strconcat(new_msg, "</font>", NULL);
+ g_string_append(new_msg, "</font>");
+ *message = g_string_free(new_msg, FALSE); /* respond to a sending-im signal by replacing outgoing text
--- a/configure.ac Thu Feb 11 17:15:39 2010 -0600
+++ b/configure.ac Thu Feb 11 17:16:25 2010 -0600
@@ -1,4 +1,4 @@
-AC_INIT([purple-plugin_pack], [2.6.1dev], [plugins-devel@lists.guifications.org])
+AC_INIT([purple-plugin_pack], [2.6.3dev], [plugins-devel@lists.guifications.org]) AM_CONFIG_HEADER(pre_config.h)
@@ -19,11 +19,8 @@
dnl #######################################################################
dnl #######################################################################
-m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
-m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
-m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
-m4_defun([_LT_AC_LANG_RC_CONFIG], [:])
LIBTOOL="$LIBTOOL --silent"
dnl #######################################################################
@@ -270,7 +267,7 @@
AC_CHECK_LIB(talkfilters, gtf_filter_count, TALKFILTERS_LIBS="-ltalkfilters")
AC_SUBST(TALKFILTERS_LIBS)
- DEPENDENCIES="$DEPENDENCIES,talkfilters"
+ DEPENDENCIES="$DEPENDENCIES,talkfiltersbin" dnl #######################################################################
--- a/enhancedhist/enhancedhist.c Thu Feb 11 17:15:39 2010 -0600
+++ b/enhancedhist/enhancedhist.c Thu Feb 11 17:16:25 2010 -0600
@@ -89,7 +89,6 @@
GtkIMHtmlOptions options;
GList *logs = NULL, *logs_head = NULL;
- GSList *buddies = NULL;
struct tm *log_tm = NULL, *local_tm = NULL;
@@ -124,18 +123,19 @@
options = GTK_IMHTML_NO_COLOURS;
- /* Find buddies for this conversation. */
- buddies = purple_find_buddies(account, name);
- /* If we found at least one buddy, save the first buddy's alias. */
- alias = purple_buddy_get_contact_alias((PurpleBuddy *)buddies->data);
/* Determine whether this is an IM or a chat. In either case, if the user has that
* particular log type disabled, the logs file doesnt not get specified */
convtype = purple_conversation_get_type(c);
if (convtype == PURPLE_CONV_TYPE_IM && PREF_IM_VAL) {
+ GSList *buddies = NULL; + /* Find buddies for this conversation. */ + buddies = purple_find_buddies(account, name); + /* If we found at least one buddy, save the first buddy's alias. */ + alias = purple_buddy_get_contact_alias((PurpleBuddy *)buddies->data); for(cur = buddies; cur; cur = cur->next) {
PurpleBlistNode *node = cur->data;
@@ -153,11 +153,12 @@
- logs = g_list_sort(logs, purple_log_compare);
- logs = purple_log_get_logs(PURPLE_LOG_IM, name, account);
+ logs = g_list_sort(logs, purple_log_compare); + logs = purple_log_get_logs(PURPLE_LOG_IM, name, account); } else if (convtype == PURPLE_CONV_TYPE_CHAT && PREF_CHAT_VAL) {
logs = purple_log_get_logs(PURPLE_LOG_CHAT,
purple_conversation_get_name(c), purple_conversation_get_account(c));
--- a/google/google.c Thu Feb 11 17:15:39 2010 -0600
+++ b/google/google.c Thu Feb 11 17:16:25 2010 -0600
@@ -26,6 +26,8 @@
#include <conversation.h>
@@ -33,6 +35,8 @@
#define GOOGLE_URL_FORMAT "http://%s/search?q=%s&btnI=I%%27m+Feeling+Lucky"
+#define GOOGLE_DOMAIN_PREF "/core/plugins/core-plugin_pack-google/domain" /******************************************************************************
*****************************************************************************/
@@ -230,8 +234,11 @@
GoogleFetchUrlData *gfud = NULL;
PurplePlugin *plugin = (PurplePlugin *)data;
+ const gchar *pref = NULL; - url = g_strdup_printf(GOOGLE_URL_FORMAT, "www.google.com",
+ pref = purple_prefs_get_string(GOOGLE_DOMAIN_PREF); + url = g_strdup_printf(GOOGLE_URL_FORMAT, + pref ? pref : "www.google.com", purple_url_encode(args[0]));
gfud = google_fetch_url_data_new(url);
@@ -256,6 +263,21 @@
/******************************************************************************
+ *****************************************************************************/ +static PurplePluginPrefFrame * +google_pref_frame(PurplePlugin *plugin) { + PurplePluginPrefFrame *frame = purple_plugin_pref_frame_new(); + PurplePluginPref *pref = + purple_plugin_pref_new_with_name_and_label(GOOGLE_DOMAIN_PREF, + _("Google Domain (i.e. www.google.com)")); + purple_plugin_pref_frame_add(frame, pref); +/****************************************************************************** *****************************************************************************/
@@ -278,6 +300,16 @@
+static PurplePluginUiInfo google_prefs_info = { static PurplePluginInfo info = {
@@ -302,7 +334,7 @@
@@ -320,6 +352,12 @@
info.summary = _("Returns the url for a Google \"I'm feeling lucky\" search");
info.description = info.summary;
+ purple_prefs_add_none("/core"); + purple_prefs_add_none("/core/plugins"); + purple_prefs_add_none("/core/plugins/core-plugin_pack-google"); + purple_prefs_add_string(GOOGLE_DOMAIN_PREF, "www.google.com"); PURPLE_INIT_PLUGIN(google, init_plugin, info)
--- a/groupmsg/groupmsg.c Thu Feb 11 17:15:39 2010 -0600
+++ b/groupmsg/groupmsg.c Thu Feb 11 17:16:25 2010 -0600
@@ -66,6 +66,7 @@
gchar *tmp = NULL, *tmp2 = NULL;
group = (PurpleGroup *)node;
@@ -100,9 +101,18 @@
- tmp = g_strdup_printf(_("Your message will be sent to these buddies:\n%s"), tmp2);
+ if((llen = g_list_length(list)) > 6) { + /* there should probably be more detailed handling here for singular vs + * plural here, but I'm too lazy to do it, and this is for messaging a + * group, which should be multiple people anyway */ + tmp = g_strdup_printf(_("Your message will be sent to and probably annoy " + "ALL %u PEOPLE in the group %s!"), llen, group->name); + tmp = g_strdup_printf(_("Your message will be sent to these buddies:\n%s"), tmp2); purple_request_input(group, _("Spam"),
_("Please enter the message to send"),
--- a/irc-more/irc-more.c Thu Feb 11 17:15:39 2010 -0600
+++ b/irc-more/irc-more.c Thu Feb 11 17:16:25 2010 -0600
@@ -33,14 +33,11 @@
#define CTCP_REPLY purple_account_get_string(account, "ctcp-message", "Purple IRC")
#define PART_MESSAGE purple_account_get_string(account, "part-message", "Leaving.")
#define QUIT_MESSAGE purple_account_get_string(account, "quit-message", "Leaving.")
-#define SET_UMODES purple_account_get_string(account, "umodes", "i")
-#define UNSET_UMODES purple_account_get_string(account, "umodes", NULL)
+#define SET_UMODES purple_account_get_string(account, "setumodes", "i") +#define UNSET_UMODES purple_account_get_string(account, "unsetumodes", NULL) #define PLUGIN_ID "core-plugin_pack-irc-more"
-#define PREF_PREFIX "/plugins/core/" PLUGIN_ID
-#define PREF_DELAY PREF_PREFIX "/delay"
#define MATCHES(string) !strncmp(*msg, string, sizeof(string) - 1)
static PurpleCmdId notice_cmd_id = 0;
@@ -51,7 +48,11 @@
/* So you think you can kick me? I'll show you! */
PurpleConversation *conv = data;
- char *conv_name = NULL, *command = NULL, *markup = NULL, *error = NULL;
+ const char *conv_name = NULL; + char *command = NULL, *markup = NULL, *error = NULL; + conv_name = purple_conversation_get_name(conv); command = g_strdup_printf("join %s", conv_name);
@@ -75,25 +76,29 @@
splits = g_strsplit(*incoming, " ", -1);
- PurpleAccount *account = purple_connection_get_account(gc);
- char *str = g_ascii_strdown(splits[1], -1);
+ /* if there's not at least 5 elements in the string array, this isn't a kick; ignore */ + if(g_strv_length(splits) < 5) + PurpleAccount *account = purple_connection_get_account(gc); + char *str = g_ascii_strdown(splits[1], -1); - if (strcmp(str, "kick") == 0 && splits[2] && splits[3]) {
- char *name = splits[2];
- GList *chats = purple_get_chats();
- PurpleConversation *conv = chats->data;
- if (purple_conversation_get_account(conv) == account
- && strcmp(purple_conversation_get_name(conv), name) == 0) {
- g_timeout_add(1000 * MAX(10, purple_prefs_get_int(PREF_DELAY)), show_them, conv);
+ if (strcmp(str, "kick") == 0 && splits[2] && splits[3]) { + char *name = splits[2]; + GList *chats = purple_get_chats(); + PurpleConversation *conv = chats->data; + if (purple_conversation_get_account(conv) == account + && strcmp(purple_conversation_get_name(conv), name) == 0) { + purple_timeout_add(100, show_them, conv);
@@ -271,34 +276,6 @@
-static PurplePluginPrefFrame *
-get_plugin_pref_frame(PurplePlugin *plugin)
- PurplePluginPrefFrame *frame;
- PurplePluginPref *pref;
- frame = purple_plugin_pref_frame_new();
- pref = purple_plugin_pref_new_with_name_and_label(PREF_DELAY,
- _("Seconds to wait before rejoining"));
- purple_plugin_pref_set_bounds(pref, 3, 3600);
- purple_plugin_pref_frame_add(frame, pref);
-static PurplePluginUiInfo prefs_info = {
static PurplePluginInfo info =
@@ -324,7 +301,7 @@
@@ -346,9 +323,6 @@
info.description = _("Adds additional IRC features, including a "
"customizable quit message, a customizable CTCP VERSION reply, "
"and the /notice command for notices.");
- purple_prefs_add_none(PREF_PREFIX);
- purple_prefs_add_int(PREF_DELAY, 30);
PURPLE_INIT_PLUGIN(irc_more, init_plugin, info)
--- a/irchelper/irchelper.c Thu Feb 11 17:15:39 2010 -0600
+++ b/irchelper/irchelper.c Thu Feb 11 17:16:25 2010 -0600
@@ -62,6 +62,7 @@
#define DOMAIN_SUFFIX_INDIEZEN ".indiezen.org"
#define DOMAIN_SUFFIX_JEUX ".jeux.fr"
#define DOMAIN_SUFFIX_QUAKENET ".quakenet.org"
+#define DOMAIN_SUFFIX_SPIDERNET ".spidernet.org" #define DOMAIN_SUFFIX_THUNDERCITY ".thundercity.org"
#define DOMAIN_SUFFIX_UNDERNET ".undernet.org"
@@ -89,6 +90,7 @@
#define MESSAGE_NICKSERV_IDENTIFIED "Password accepted - you are now recognized"
#define MESSAGE_NICKSERV_IDENTIFIED_INDIEZEN "Password accepted -- you are now recognized."
#define MESSAGE_SPOOFING_YOUR_IP "*** Spoofing your IP. congrats."
+#define MESSAGE_SET_HOSTNAME "idoru set your hostname to" #define MESSAGE_QUAKENET_Q_CRUFT \
"Remember: NO-ONE from QuakeNet will ever ask for your password. " \
"NEVER send your password to ANYONE except Q@CServe.quakenet.org."
@@ -146,6 +148,7 @@
IRC_NETWORK_TYPE_DALNET = 0x0800,
IRC_NETWORK_TYPE_FUNCOM = 0x1000,
IRC_NETWORK_TYPE_INDIEZEN = 0x2000,
+ IRC_NETWORK_TYPE_SPIDERNET = 0x4000 @@ -248,6 +251,8 @@
type = IRC_NETWORK_TYPE_UNDERNET;
else if (g_str_has_suffix(username, DOMAIN_SUFFIX_INDIEZEN))
type = IRC_NETWORK_TYPE_INDIEZEN;
+ else if (g_str_has_suffix(username, DOMAIN_SUFFIX_SPIDERNET)) + type = IRC_NETWORK_TYPE_SPIDERNET; @@ -638,7 +643,7 @@
if (state & IRC_NETWORK_TYPE_THUNDERCITY)
nickserv_msg_identify("AUTH", connection->proto_data, connection, nickpassword);
- else if (state & IRC_NETWORK_TYPE_INDIEZEN)
+ else if (state & (IRC_NETWORK_TYPE_INDIEZEN | IRC_NETWORK_TYPE_SPIDERNET)) nickserv_msg_identify("identify", connection->proto_data, connection, nickpassword);
nickserv_identify(connection->proto_data, connection, nickpassword);
@@ -930,6 +935,11 @@
+ if (g_str_has_prefix(msg, MESSAGE_PURPLE_NOTICE_PREFIX MESSAGE_SET_HOSTNAME)) /* SLIGHTLY COMPLICATED SUPPRESSION RULES */
/* Supress QuakeNet and UnderNet Weird Login Cruft */
--- a/slashexec/slashexec.c Thu Feb 11 17:15:39 2010 -0600
+++ b/slashexec/slashexec.c Thu Feb 11 17:16:25 2010 -0600
@@ -501,9 +501,9 @@
- "Gary Kramlich <grim@reaperworld.com>, "
- "Peter Lawler <bleeter from users.sf.net>, "
- "Daniel Atallah, Sadrul Habib Chowdhury <sadrul@users.sf.net>, "
+ "Gary Kramlich <grim@reaperworld.com>,\n" + "Peter Lawler <bleeter from users.sf.net>,\n" + "Daniel Atallah,\nSadrul Habib Chowdhury <sadrul@users.sf.net>,\n" "John Bailey <rekkanoryo@rekkanoryo.org>", /* authors */
PP_WEBSITE, /* homepage */
--- a/splitter/Makefile.mingw Thu Feb 11 17:15:39 2010 -0600
+++ b/splitter/Makefile.mingw Thu Feb 11 17:16:25 2010 -0600
@@ -10,3 +10,5 @@
include $(PP_TOP)/win_pp.mak
+PLUGIN_LIBS += -lpangowin32-1.0 --- a/splitter/splitter.c Thu Feb 11 17:15:39 2010 -0600
+++ b/splitter/splitter.c Thu Feb 11 17:16:25 2010 -0600
@@ -25,6 +25,10 @@
+# include <pango/pangowin32.h> # include <pango/pangocairo.h>
@@ -71,6 +75,9 @@
+/* Global variable to block infinite loops. Single-threaded is nice */ +static gboolean splitter_injected_message = FALSE; /* plugin preference variables */
static gint current_split_size;
@@ -118,8 +125,7 @@
PurpleConversationType type;
- char *displayed = NULL, *sent = NULL;
if (strlen(message) == 0)
@@ -132,76 +138,29 @@
type = purple_conversation_get_type(conv);
- /* Always linkfy the text for display */
- displayed = purple_markup_linkify(message);
if ((conv->features & PURPLE_CONNECTION_HTML) &&
!(msgflags & PURPLE_MESSAGE_RAW))
- sent = g_strdup(displayed);
+ sent = purple_markup_linkify(message); sent = g_strdup(message);
msgflags |= PURPLE_MESSAGE_SEND;
- if (type == PURPLE_CONV_TYPE_IM) {
- PurpleConvIm *im = PURPLE_CONV_IM(conv);
- if (sent != NULL && sent[0] != '\0') {
- err = serv_send_im(gc, purple_conversation_get_name(conv),
+ splitter_injected_message = TRUE; - if ((err > 0) && (displayed != NULL))
- purple_conv_im_write(im, NULL, displayed, msgflags, time(NULL));
- purple_signal_emit(purple_conversations_get_handle(), "sent-im-msg",
- purple_conversation_get_name(conv), sent);
+ if (type == PURPLE_CONV_TYPE_IM) { + if (sent != NULL && sent[0] != '\0') + purple_conv_im_send_with_flags(PURPLE_CONV_IM(conv), sent, msgflags); - if (sent != NULL && sent[0] != '\0') {
- err = serv_chat_send(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), sent, msgflags);
- purple_signal_emit(purple_conversations_get_handle(), "sent-chat-msg",
- purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)));
+ if (sent != NULL && sent[0] != '\0') + purple_conv_chat_send_with_flags(PURPLE_CONV_CHAT(conv), sent, msgflags);
- who = purple_conversation_get_name(conv);
- msg = _("Unable to send message: The message is too large.");
+ splitter_injected_message = FALSE; - if (!purple_conv_present_error(who, account, msg)) {
- char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
- purple_notify_error(gc, NULL, msg2, _("The message is too large."));
- else if (err == -ENOTCONN) {
- purple_debug(PURPLE_DEBUG_ERROR, "conversation",
- "Not yet connected.\n");
- msg = _("Unable to send message.");
- if (!purple_conv_present_error(who, account, msg)) {
- char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
- purple_notify_error(gc, NULL, msg2, NULL);
@@ -440,14 +399,16 @@
sending_chat_msg_cb(PurpleAccount *account, const char **message, int id) {
message_to_conv *msg_to_conv;
- purple_debug(PURPLE_DEBUG_MISC, "purple-splitter", "splitter plugin invoked\n");
+ if (splitter_injected_message) + purple_debug_misc("purple-splitter", "splitter plugin invoked\n"); g_return_if_fail(account != NULL);
g_return_if_fail(message != NULL);
g_return_if_fail(*message != NULL);
msg_to_conv = g_new0(message_to_conv, 1);
- g_return_if_fail( msg_to_conv != NULL );
msg_to_conv->sender_username = g_strdup(account->username);
msg_to_conv->sender_protocol_id = g_strdup(account->protocol_id);
@@ -464,15 +425,21 @@
message_to_conv *msg_to_conv;
- purple_debug(PURPLE_DEBUG_MISC, "purple-splitter", "splitter plugin invoked\n");
+ if (splitter_injected_message) + purple_debug_misc("purple-splitter", "splitter plugin invoked\n"); g_return_if_fail(account != NULL);
g_return_if_fail(receiver != NULL);
g_return_if_fail(message != NULL);
g_return_if_fail(*message != NULL);
+ /* OTR compatibility hack */ + if (0 == strncmp(*message, "?OTR", strlen("?OTR"))) msg_to_conv = g_new0(message_to_conv, 1);
- g_return_if_fail( msg_to_conv != NULL );
msg_to_conv->sender_username = g_strdup(account->username);
msg_to_conv->sender_protocol_id = g_strdup(account->protocol_id);
@@ -485,16 +452,18 @@
/* register "sending" message signal callback */
plugin_load(PurplePlugin *plugin) {
- purple_signal_connect(purple_conversations_get_handle(),
+ purple_signal_connect_priority(purple_conversations_get_handle(), PURPLE_CALLBACK(sending_im_msg_cb),
- purple_signal_connect(purple_conversations_get_handle(),
+ PURPLE_SIGNAL_PRIORITY_HIGHEST); + purple_signal_connect_priority(purple_conversations_get_handle(), PURPLE_CALLBACK(sending_chat_msg_cb),
+ PURPLE_SIGNAL_PRIORITY_HIGHEST); --- a/stress/stress.c Thu Feb 11 17:15:39 2010 -0600
+++ b/stress/stress.c Thu Feb 11 17:16:25 2010 -0600
@@ -43,6 +43,14 @@
/******************************************************************************
*****************************************************************************/
@@ -405,6 +413,17 @@
+stress_actions(PurplePlugin *plugin, gpointer context) { + PurplePluginAction *act = NULL; + action = purple_plugin_action_new(_("Start")); + menu = g_list_append(menu, action); static PurplePluginInfo info = {
@@ -430,7 +449,7 @@
--- a/talkfilters/plugins.cfg Thu Feb 11 17:15:39 2010 -0600
+++ b/talkfilters/plugins.cfg Thu Feb 11 17:16:25 2010 -0600
@@ -1,6 +1,6 @@
+depends=pidgin talkfiltersbin summary=Translates text in sent messages into humorous dialects
description=The GNU Talk Filters are filter programs that convert ordinary English text into text that mimics a stereotyped or otherwise humorous dialect. These filters have been in the public domain for many years, and have been made available as a single integrated package. The filters include austro, b1ff, brooklyn, chef, cockney, drawl, dubya, fudd, funetak, jethro, jive, kraut, pansy, pirate, postmodern, redneck, valspeak, and warez.