/pidgin/main: 63663622e327: Switch write_conv and (displaying|di...

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 63663622e32777c0bb5232754831f836b60b4316
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-06-12 21:00 +0200
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/63663622e327

Description:

Switch write_conv and (displaying|displayed)-(im|chat)-msg to PurpleMessage

diffstat:

 finch/gntconv.c                             |  17 ++----
 libpurple/conversation.c                    |  12 +---
 libpurple/conversation.h                    |   8 +--
 libpurple/example/nullclient.c              |  19 ++-----
 pidgin/gtkconv.c                            |  68 +++++++++++++++-------------
 pidgin/plugins/crazychat/cc_pidgin_plugin.c |   7 +-
 pidgin/plugins/gtk-signals-test.c           |  24 +++++-----
 pidgin/plugins/notify.c                     |   5 +-
 pidgin/plugins/unity.c                      |   5 +-
 pidgin/win32/gtkwin32dep.c                  |   3 +-
 10 files changed, 75 insertions(+), 93 deletions(-)

diffs (truncated from 417 to 300 lines):

diff --git a/finch/gntconv.c b/finch/gntconv.c
--- a/finch/gntconv.c
+++ b/finch/gntconv.c
@@ -1090,18 +1090,13 @@ finch_write_common(PurpleConversation *c
 }
 
 static void
-finch_write_conv(PurpleConversation *conv, const char *who, const char *alias,
-		const char *message, PurpleMessageFlags flags, time_t mtime)
+finch_write_conv(PurpleConversation *conv, PurpleMessage *msg)
 {
-	const char *name;
-	if (alias && *alias)
-		name = alias;
-	else if (who && *who)
-		name = who;
-	else
-		name = NULL;
-
-	finch_write_common(conv, name, message, flags, mtime);
+	finch_write_common(conv,
+		purple_message_get_author_alias(msg),
+		purple_message_get_contents(msg),
+		purple_message_get_flags(msg),
+		purple_message_get_time(msg));
 }
 
 static const char *
diff --git a/libpurple/conversation.c b/libpurple/conversation.c
--- a/libpurple/conversation.c
+++ b/libpurple/conversation.c
@@ -644,7 +644,7 @@ void
 
 				purple_message_set_author_alias(pmsg, alias);
 			}
-			else
+			else if (purple_message_get_flags(pmsg) & PURPLE_MESSAGE_RECV)
 			{
 				/* TODO: PurpleDude - folks not on the buddy list */
 				b = purple_blist_find_buddy(account,
@@ -672,14 +672,8 @@ void
 		}
 	}
 
-	if (ops && ops->write_conv) {
-		ops->write_conv(conv,
-			(purple_message_get_flags(pmsg) & PURPLE_MESSAGE_SEND) ? purple_message_get_recipient(pmsg) : purple_message_get_author(pmsg),
-			purple_message_get_author_alias(pmsg),
-			purple_message_get_contents(pmsg),
-			purple_message_get_flags(pmsg),
-			purple_message_get_time(pmsg));
-	}
+	if (ops && ops->write_conv)
+		ops->write_conv(conv, pmsg);
 
 	add_message_to_history(conv,
 		(purple_message_get_flags(pmsg) & PURPLE_MESSAGE_SEND) ? purple_message_get_recipient(pmsg) : purple_message_get_author(pmsg),
diff --git a/libpurple/conversation.h b/libpurple/conversation.h
--- a/libpurple/conversation.h
+++ b/libpurple/conversation.h
@@ -252,13 +252,7 @@ struct _PurpleConversationUiOps
 
 	void (*write_chat)(PurpleChatConversation *chat, PurpleMessage *msg);
 	void (*write_im)(PurpleIMConversation *im, PurpleMessage *msg);
-
-	void (*write_conv)(PurpleConversation *conv,
-	                   const char *name,
-	                   const char *alias,
-	                   const char *message,
-	                   PurpleMessageFlags flags,
-	                   time_t mtime);
+	void (*write_conv)(PurpleConversation *conv, PurpleMessage *msg);
 
 	void (*chat_add_users)(PurpleChatConversation *chat,
 	                       GList *cbuddies,
diff --git a/libpurple/example/nullclient.c b/libpurple/example/nullclient.c
--- a/libpurple/example/nullclient.c
+++ b/libpurple/example/nullclient.c
@@ -117,20 +117,15 @@ static PurpleEventLoopUiOps glib_eventlo
 
 /*** Conversation uiops ***/
 static void
-null_write_conv(PurpleConversation *conv, const char *who, const char *alias,
-			const char *message, PurpleMessageFlags flags, time_t mtime)
+null_write_conv(PurpleConversation *conv, PurpleMessage *msg)
 {
-	const char *name;
-	if (alias && *alias)
-		name = alias;
-	else if (who && *who)
-		name = who;
-	else
-		name = NULL;
+	time_t mtime = purple_message_get_time(msg);
 
-	printf("(%s) %s %s: %s\n", purple_conversation_get_name(conv),
-			purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)),
-			name, message);
+	printf("(%s) %s %s: %s\n",
+		purple_conversation_get_name(conv),
+		purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)),
+		purple_message_get_author_alias(msg),
+		purple_message_get_contents(msg));
 }
 
 static PurpleConversationUiOps null_conv_uiops =
diff --git a/pidgin/gtkconv.c b/pidgin/gtkconv.c
--- a/pidgin/gtkconv.c
+++ b/pidgin/gtkconv.c
@@ -6392,8 +6392,8 @@ static char *
 replace_message_tokens(
 	const char *text,
 	PurpleConversation *conv,
-	const char *name,
-	const char *alias,
+	const char *name, /* author */
+	const char *alias, /* author's alias */
 	const char *message,
 	PurpleMessageFlags flags,
 	time_t mtime)
@@ -6655,9 +6655,7 @@ box_remote_images(PurpleConversation *co
 }
 
 static void
-pidgin_conv_write_conv(PurpleConversation *conv, const char *name, const char *alias,
-						const char *message, PurpleMessageFlags flags,
-						time_t mtime)
+pidgin_conv_write_conv(PurpleConversation *conv, PurpleMessage *pmsg)
 {
 	PidginConversation *gtkconv;
 	PurpleConnection *gc;
@@ -6680,17 +6678,18 @@ pidgin_conv_write_conv(PurpleConversatio
 #endif
 
 	const char *message_html;
-	char *msg;
+	char *msg_tokenized;
 	char *escape;
 	char *script;
 	char *smileyed;
 	gchar *imgized;
-	PurpleMessageFlags old_flags;
+	PurpleMessageFlags flags, old_flags;
 	const char *func = "appendMessage";
 
 	g_return_if_fail(conv != NULL);
 	gtkconv = PIDGIN_CONVERSATION(conv);
 	g_return_if_fail(gtkconv != NULL);
+	flags = purple_message_get_flags(pmsg);
 
 	if (gtkconv->attach_timer) {
 		/* We are currently in the process of filling up the buffer with the message
@@ -6727,14 +6726,14 @@ pidgin_conv_write_conv(PurpleConversatio
 
 	/* Make sure URLs are clickable */
 	if(flags & PURPLE_MESSAGE_NO_LINKIFY)
-		displaying = g_strdup(message);
+		displaying = g_strdup(purple_message_get_contents(pmsg));
 	else
-		displaying = purple_markup_linkify(message);
+		displaying = purple_markup_linkify(purple_message_get_contents(pmsg));
 
 	plugin_return = GPOINTER_TO_INT(purple_signal_emit_return_1(
-							pidgin_conversations_get_handle(), (PURPLE_IS_IM_CONVERSATION(conv) ?
-							"displaying-im-msg" : "displaying-chat-msg"),
-							account, name, &displaying, conv, flags));
+		pidgin_conversations_get_handle(),
+		(PURPLE_IS_IM_CONVERSATION(conv) ? "displaying-im-msg" : "displaying-chat-msg"),
+		conv, pmsg));
 	if (plugin_return)
 	{
 		g_free(displaying);
@@ -6762,7 +6761,7 @@ pidgin_conv_write_conv(PurpleConversatio
 		g_assert(last_msg != NULL);
 
 		/* If the senders are the same, use appendNextMessage */
-		if (purple_strequal(purple_conversation_message_get_sender(last_msg), name)) {
+		if (purple_strequal(purple_conversation_message_get_sender(last_msg), purple_message_get_author(pmsg))) {
 			message_html = pidgin_conversation_theme_get_template(gtkconv->theme,
 				PIDGIN_CONVERSATION_THEME_TEMPLATE_INCOMING_NEXT_CONTENT);
 			func = "appendNextMessage";
@@ -6785,8 +6784,13 @@ pidgin_conv_write_conv(PurpleConversatio
 		(flags & PURPLE_MESSAGE_RECV), pidgin_conv_write_smiley,
 		(gpointer)purple_account_get_protocol_name(account));
 	imgized = box_remote_images(conv, smileyed);
-	msg = replace_message_tokens(message_html, conv, name, alias, imgized, flags, mtime);
-	escape = pidgin_webview_quote_js_string(msg ? msg : "");
+	msg_tokenized = replace_message_tokens(message_html, conv,
+		purple_message_get_author(pmsg),
+		purple_message_get_author_alias(pmsg),
+		imgized,
+		purple_message_get_flags(pmsg),
+		purple_message_get_time(pmsg));
+	escape = pidgin_webview_quote_js_string(msg_tokenized ? msg_tokenized : "");
 	script = g_strdup_printf("%s(%s)", func, escape);
 
 	purple_debug_info("webkit", "JS: %s\n", script);
@@ -6795,7 +6799,7 @@ pidgin_conv_write_conv(PurpleConversatio
 	g_free(script);
 	g_free(smileyed);
 	g_free(imgized);
-	g_free(msg);
+	g_free(msg_tokenized);
 	g_free(escape);
 
 #if 0
@@ -7004,7 +7008,7 @@ pidgin_conv_write_conv(PurpleConversatio
 			struct tm *history_since_tm;
 			const char *history_since_s, *prev_history_since_s;
 
-			history_since = mtime + 1;
+			history_since = purple_message_get_time(pmsg) + 1;
 
 			prev_history_since_s = g_hash_table_lookup(comps,
 				"history_since");
@@ -7034,7 +7038,7 @@ pidgin_conv_write_conv(PurpleConversatio
 
 	purple_signal_emit(pidgin_conversations_get_handle(),
 		(PURPLE_IS_IM_CONVERSATION(conv) ? "displayed-im-msg" : "displayed-chat-msg"),
-		account, name, displaying, conv, flags);
+		conv, pmsg);
 	g_free(displaying);
 	update_typing_message(gtkconv, NULL);
 }
@@ -8493,6 +8497,8 @@ add_message_history_to_gtkconv(gpointer 
 			pidgin_webview_scroll_to_end(webview, TRUE);
 			g_object_set_data(G_OBJECT(gtkconv->entry), "attach-start-time", NULL);
 		}
+#if 0
+		/* TODO */
 		pidgin_conv_write_conv(
 				purple_conversation_message_get_conversation(msg),
 				purple_conversation_message_get_sender(msg),
@@ -8500,6 +8506,7 @@ add_message_history_to_gtkconv(gpointer 
 				purple_conversation_message_get_message(msg),
 				purple_conversation_message_get_flags(msg),
 				purple_conversation_message_get_timestamp(msg));
+#endif
 		if (im) {
 			gtkconv->attach_current = g_list_delete_link(gtkconv->attach_current, gtkconv->attach_current);
 		} else {
@@ -8528,6 +8535,8 @@ add_message_history_to_gtkconv(gpointer 
 		}
 		msgs = g_list_sort(msgs, message_compare);
 		for (; msgs; msgs = g_list_delete_link(msgs, msgs)) {
+#if 0
+			/* TODO */
 			PurpleConversationMessage *msg = msgs->data;
 			pidgin_conv_write_conv(
 					purple_conversation_message_get_conversation(msg),
@@ -8536,6 +8545,7 @@ add_message_history_to_gtkconv(gpointer 
 					purple_conversation_message_get_message(msg),
 					purple_conversation_message_get_flags(msg),
 					purple_conversation_message_get_timestamp(msg));
+#endif
 		}
 		pidgin_webview_append_html(webview, "<BR><HR>");
 		pidgin_webview_scroll_to_end(webview, TRUE);
@@ -8776,26 +8786,20 @@ pidgin_conversations_init(void)
 	                     G_TYPE_BOOLEAN);
 
 	purple_signal_register(handle, "displaying-im-msg",
-						 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER,
-						 G_TYPE_BOOLEAN, 5, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING,
-						 G_TYPE_POINTER, /* pointer to a string */
-						 PURPLE_TYPE_CONVERSATION, G_TYPE_INT);
+		purple_marshal_BOOLEAN__POINTER_POINTER,
+		G_TYPE_BOOLEAN, 2, PURPLE_TYPE_CONVERSATION, PURPLE_TYPE_MESSAGE);
 
 	purple_signal_register(handle, "displayed-im-msg",
-						 purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT,
-						 G_TYPE_NONE, 5, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING,
-						 G_TYPE_STRING, PURPLE_TYPE_CONVERSATION, G_TYPE_INT);
+		purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2,
+		PURPLE_TYPE_CONVERSATION, PURPLE_TYPE_MESSAGE);
 
 	purple_signal_register(handle, "displaying-chat-msg",
-						 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER,
-						 G_TYPE_BOOLEAN, 5, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING,
-						 G_TYPE_POINTER, /* pointer to a string */
-						 PURPLE_TYPE_CONVERSATION, G_TYPE_INT);
+		purple_marshal_BOOLEAN__POINTER_POINTER,
+		G_TYPE_BOOLEAN, 2, PURPLE_TYPE_CONVERSATION, PURPLE_TYPE_MESSAGE);
 
 	purple_signal_register(handle, "displayed-chat-msg",
-						 purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT,
-						 G_TYPE_NONE, 5, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING,
-						 G_TYPE_STRING, PURPLE_TYPE_CONVERSATION, G_TYPE_INT);
+		purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2,
+		PURPLE_TYPE_CONVERSATION, PURPLE_TYPE_MESSAGE);
 
 	purple_signal_register(handle, "conversation-switched",
 						 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
diff --git a/pidgin/plugins/crazychat/cc_pidgin_plugin.c b/pidgin/plugins/crazychat/cc_pidgin_plugin.c
--- a/pidgin/plugins/crazychat/cc_pidgin_plugin.c
+++ b/pidgin/plugins/crazychat/cc_pidgin_plugin.c
@@ -71,8 +71,7 @@ static gboolean receive_im_cb(PurpleAcco
  * @param message	the message we are displaying
  * @param data		user data
  */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.