diff -r 6037d5c3a06c -r 50f361d39a1e libpurple/plugins/codeinline.c --- a/libpurple/plugins/codeinline.c Tue May 20 10:59:21 2014 +0530 +++ b/libpurple/plugins/codeinline.c Sat May 24 02:32:01 2014 +0530 @@ -28,20 +28,37 @@ PurplePlugin *plugin_handle = NULL; -static gboolean outgoing_msg_cb(PurpleAccount *account, const char *who, char **message, - PurpleConversation *conv, PurpleMessageFlags flags, gpointer null) +static char * +outgoing_msg_common(const char *message) { char *m; - char **ms = g_strsplit(*message, "", -1); + char **ms = g_strsplit(message, "", -1); m = g_strjoinv("", ms); g_strfreev(ms); ms = g_strsplit(m, "", -1); g_free(m); - m = g_strjoinv("", ms); - g_free(*message); - *message = m; - return FALSE; + return g_strjoinv("", ms); +} + +static gboolean outgoing_msg_cb1(PurpleAccount *account, const char *who, char **message, + PurpleConversation *conv, PurpleMessageFlags flags, gpointer null) +{ + char *m; + + m = outgoing_msg_common(*message); + g_free(*message); + *message = m; + + return FALSE; +} + +static void +outgoing_msg_cb2(PurpleAccount *account, PurpleMessage *msg, + PurpleConversation *conv, PurpleMessageFlags flags, gpointer null) +{ + purple_message_set_contents(msg, + outgoing_msg_common(purple_message_get_contents(msg))); } static PurplePluginInfo * @@ -74,9 +91,9 @@ void *handle = purple_conversations_get_handle(); plugin_handle = plugin; purple_signal_connect(handle, "writing-im-msg", plugin, - PURPLE_CALLBACK(outgoing_msg_cb), NULL); + PURPLE_CALLBACK(outgoing_msg_cb1), NULL); purple_signal_connect(handle, "sending-im-msg", plugin, - PURPLE_CALLBACK(outgoing_msg_cb), NULL); + PURPLE_CALLBACK(outgoing_msg_cb2), NULL); return TRUE; }