/soc/2013/ankitkv/gobjectification: c0eccc6696da: Merged default...

Ankit Vani <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: c0eccc6696dad15cb50cf7bc3e3d46b292dc3d4e
Author:	 Ankit Vani <[email protected]>
Date:	 2014-06-15 03:46 +0530
Branch:	 soc.2013.gobjectification.plugins
URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/c0eccc6696da

Description:

Merged default branch

diffstat:

 doc/reference/libpurple/libpurple-docs.xml  |   18 +-
 finch/gntconv.c                             |   38 +---
 finch/plugins/gnttinyurl.c                  |   28 +-
 libpurple/conversation.c                    |  227 +++++++--------------------
 libpurple/conversation.h                    |   87 +----------
 libpurple/conversations.c                   |   22 +-
 libpurple/conversationtypes.c               |   32 +---
 libpurple/example/nullclient.c              |   19 +-
 libpurple/internal.h                        |   27 ++-
 libpurple/message.c                         |   21 +-
 libpurple/message.h                         |  163 ++++++++++++++++++-
 libpurple/plugins/signals-test.c            |   14 +-
 libpurple/protocols/jabber/message.c        |    2 +-
 libpurple/server.c                          |    7 +-
 pidgin/gtkblist.c                           |   16 +-
 pidgin/gtkconv.c                            |  157 ++++++++++--------
 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                  |   14 +-
 pidgin/win32/gtkwin32dep.h                  |    2 +-
 22 files changed, 438 insertions(+), 497 deletions(-)

diffs (truncated from 1840 to 300 lines):

diff --git a/doc/reference/libpurple/libpurple-docs.xml b/doc/reference/libpurple/libpurple-docs.xml
--- a/doc/reference/libpurple/libpurple-docs.xml
+++ b/doc/reference/libpurple/libpurple-docs.xml
@@ -38,7 +38,6 @@
       <xi:include href="xml/pounce.xml" />
       <xi:include href="xml/circularbuffer.xml" />
       <xi:include href="xml/cipher.xml" />
-      <xi:include href="xml/cmds.xml" />
       <xi:include href="xml/connection.xml" />
       <xi:include href="xml/conversation.xml" />
       <xi:include href="xml/conversationtypes.xml" />
@@ -54,7 +53,6 @@
       <xi:include href="xml/http.xml" />
       <xi:include href="xml/idle.xml" />
       <xi:include href="xml/keyring.xml" />
-      <xi:include href="xml/log.xml" />
       <xi:include href="xml/memorypool.xml" />
       <xi:include href="xml/desktopitem.xml" />
       <xi:include href="xml/mime.xml" />
@@ -98,6 +96,14 @@
 
   <reference label="">
     <reference label="a">
+      <title>Messaging</title>
+
+        <xi:include href="xml/message.xml" />
+        <xi:include href="xml/log.xml" />
+        <xi:include href="xml/cmds.xml" />
+    </reference>
+
+    <reference label="b">
       <title>Ciphers and Hashes</title>
 
         <xi:include href="xml/aescipher.xml" />
@@ -112,7 +118,7 @@
         <xi:include href="xml/sha256hash.xml" />
     </reference>
 
-    <reference label="b">
+    <reference label="c">
       <title>Smiley APIs</title>
 
         <xi:include href="xml/smiley.xml" />
@@ -122,7 +128,7 @@
         <xi:include href="xml/smiley-parser.xml" />
     </reference>
 
-    <reference label="c">
+    <reference label="d">
       <title>Graphics</title>
 
         <xi:include href="xml/image.xml" />
@@ -130,7 +136,7 @@
         <xi:include href="xml/whiteboard.xml" />
     </reference>
 
-    <reference label="d">
+    <reference label="e">
       <title>Media APIs</title>
 
         <xi:include href="xml/media.xml" />
@@ -142,7 +148,7 @@
         <xi:include href="xml/enum-types.xml" />
     </reference>
 
-    <reference label="e">
+    <reference label="f">
       <title>D-Bus Server APIs</title>
 
         <xi:include href="xml/dbus-bindings.xml" />
diff --git a/finch/gntconv.c b/finch/gntconv.c
--- a/finch/gntconv.c
+++ b/finch/gntconv.c
@@ -60,8 +60,6 @@
 
 #include "config.h"
 
-static void finch_write_common(PurpleConversation *conv, const char *who,
-		const char *message, PurpleMessageFlags flags, time_t mtime);
 static void generate_send_to_menu(FinchConv *ggc);
 static void generate_e2ee_menu(FinchConv *ggc);
 
@@ -309,8 +307,8 @@ update_buddy_typing(PurpleAccount *accou
 static void
 chat_left_cb(PurpleConversation *conv, gpointer null)
 {
-	finch_write_common(conv, NULL, _("You have left this chat."),
-			PURPLE_MESSAGE_SYSTEM, time(NULL));
+	purple_conversation_write_system_message(conv,
+		_("You have left this chat."), 0);
 }
 
 static void
@@ -987,13 +985,13 @@ finch_destroy_conversation(PurpleConvers
 }
 
 static void
-finch_write_common(PurpleConversation *conv, const char *who, const char *message,
-		PurpleMessageFlags flags, time_t mtime)
+finch_write_conv(PurpleConversation *conv, PurpleMessage *msg)
 {
 	FinchConv *ggconv = FINCH_CONV(conv);
 	char *strip, *newline;
 	GntTextFormatFlags fl = 0;
 	int pos;
+	PurpleMessageFlags flags = purple_message_get_flags(msg);
 
 	g_return_if_fail(ggconv != NULL);
 
@@ -1015,6 +1013,7 @@ finch_write_common(PurpleConversation *c
 
 	/* Unnecessary to print the timestamp for delayed message */
 	if (purple_prefs_get_bool("/finch/conversations/timestamps")) {
+		time_t mtime = purple_message_get_time(msg);
 		if (!mtime)
 			time(&mtime);
 		gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
@@ -1027,15 +1026,16 @@ finch_write_common(PurpleConversation *c
 		gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
 					_("<AUTO-REPLY> "), GNT_TEXT_FLAG_BOLD);
 
-	if (who && *who && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) &&
+	if (purple_message_get_author(msg) && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) &&
 			!(flags & PURPLE_MESSAGE_NOTIFY))
 	{
 		char * name = NULL;
 		GntTextFormatFlags msgflags = GNT_TEXT_FLAG_NORMAL;
 		gboolean me = FALSE;
+		gchar *msg_text = g_strdup(purple_message_get_contents(msg));
 
-		if (purple_message_meify((char*)message, -1)) {
-			name = g_strdup_printf("*** %s", who);
+		if (purple_message_meify(msg_text, -1)) {
+			name = g_strdup_printf("*** %s", purple_message_get_author(msg));
 			if (!(flags & PURPLE_MESSAGE_SEND) &&
 					(flags & PURPLE_MESSAGE_NICK))
 				msgflags = gnt_color_pair(color_message_highlight);
@@ -1043,7 +1043,7 @@ finch_write_common(PurpleConversation *c
 				msgflags = gnt_color_pair(color_message_action);
 			me = TRUE;
 		} else {
-			name =  g_strdup_printf("%s", who);
+			name =  g_strdup_printf("%s", purple_message_get_author(msg));
 			if (flags & PURPLE_MESSAGE_SEND)
 				msgflags = gnt_color_pair(color_message_send);
 			else if (flags & PURPLE_MESSAGE_NICK)
@@ -1051,6 +1051,7 @@ finch_write_common(PurpleConversation *c
 			else
 				msgflags = gnt_color_pair(color_message_receive);
 		}
+		purple_message_set_contents(msg, msg_text); /* might be "meified" */
 		gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
 				name, msgflags);
 		gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), me ? " " : ": ", GNT_TEXT_FLAG_NORMAL);
@@ -1062,7 +1063,7 @@ finch_write_common(PurpleConversation *c
 		fl |= GNT_TEXT_FLAG_BOLD;
 
 	/* XXX: Remove this workaround when textview can parse messages. */
-	newline = purple_strdup_withhtml(message);
+	newline = purple_strdup_withhtml(purple_message_get_contents(msg));
 	strip = purple_markup_strip_html(newline);
 	gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
 				strip, fl);
@@ -1090,21 +1091,6 @@ 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)
-{
-	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);
-}
-
 static const char *
 chat_flag_text(PurpleChatUserFlags flags)
 {
diff --git a/finch/plugins/gnttinyurl.c b/finch/plugins/gnttinyurl.c
--- a/finch/plugins/gnttinyurl.c
+++ b/finch/plugins/gnttinyurl.c
@@ -246,26 +246,24 @@ static void free_urls(gpointer data, gpo
 	g_free(data);
 }
 
-static gboolean writing_msg(PurpleAccount *account, char *sender, char **message,
-				PurpleConversation *conv, PurpleMessageFlags flags)
+static gboolean writing_msg(PurpleConversation *conv, PurpleMessage *msg, gpointer _unused)
 {
 	GString *t;
 	GList *iter, *urls, *next;
 	int c = 0;
 
-	if ((flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_INVISIBLE)))
+	if (purple_message_get_flags(msg) & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_INVISIBLE))
 		return FALSE;
 
 	urls = g_object_get_data(G_OBJECT(conv), "TinyURLs");
 	if (urls != NULL) /* message was cancelled somewhere? Reset. */
 		g_list_foreach(urls, free_urls, NULL);
 	g_list_free(urls);
-	urls = extract_urls(*message);
+	urls = extract_urls(purple_message_get_contents(msg));
 	if (!urls)
 		return FALSE;
 
-	t = g_string_new(*message);
-	g_free(*message);
+	t = g_string_new(g_strdup(purple_message_get_contents(msg)));
 	for (iter = urls; iter; iter = next) {
 		next = iter->next;
 		if (g_utf8_strlen((char *)iter->data, -1) >= purple_prefs_get_int(PREF_LENGTH)) {
@@ -289,21 +287,23 @@ static gboolean writing_msg(PurpleAccoun
 			urls = g_list_delete_link(urls, iter);
 		}
 	}
-	*message = t->str;
-	g_string_free(t, FALSE);
-	if (conv == NULL)
-		conv = PURPLE_CONVERSATION(purple_im_conversation_new(account, sender));
-	g_object_set_data(G_OBJECT(conv), "TinyURLs", urls);
+	purple_message_set_contents(msg, t->str);
+	g_string_free(t, TRUE);
+	if (conv != NULL)
+		g_object_set_data(G_OBJECT(conv), "TinyURLs", urls);
 	return FALSE;
 }
 
-static void wrote_msg(PurpleAccount *account, char *sender, char *message,
-				PurpleConversation *conv, PurpleMessageFlags flags)
+static void wrote_msg(PurpleConversation *conv, PurpleMessage *pmsg,
+	gpointer _unused)
 {
 	GList *urls;
 
+	if (purple_message_get_flags(pmsg) & PURPLE_MESSAGE_SEND)
+		return;
+
 	urls = g_object_get_data(G_OBJECT(conv), "TinyURLs");
-	if ((flags & PURPLE_MESSAGE_SEND) || urls == NULL)
+	if (urls == NULL)
 		return;
 
 	process_urls(conv, urls);
diff --git a/libpurple/conversation.c b/libpurple/conversation.c
--- a/libpurple/conversation.c
+++ b/libpurple/conversation.c
@@ -56,8 +56,7 @@ struct _PurpleConversationPrivate
 	PurpleConversationUiOps *ui_ops;  /* UI-specific operations.           */
 
 	PurpleConnectionFlags features;   /* The supported features            */
-	GList *message_history;           /* Message history, as a GList of
-	                                       PurpleConversationMessage's       */
+	GList *message_history; /* Message history, as a GList of PurpleMessages */
 
 	PurpleE2eeState *e2ee_state;      /* End-to-end encryption state.      */
 
@@ -67,19 +66,6 @@ struct _PurpleConversationPrivate
 	PurpleSmileyList *remote_smileys;
 };
 
-/*
- * Description of a conversation message
- */
-struct _PurpleConversationMessage
-{
-	char *who;
-	char *what;
-	PurpleMessageFlags flags;
-	time_t when;
-	PurpleConversation *conv;
-	char *alias;
-};
-
 /* GObject Property enums */
 enum
 {
@@ -216,58 +202,20 @@ open_log(PurpleConversation *conv)
 							   conv, time(NULL), NULL));
 }
 
-/* Functions that deal with PurpleConversationMessage */
+/* Functions that deal with PurpleMessage history */
 
 static void
-add_message_to_history(PurpleConversation *conv, const char *who, const char *alias,
-		const char *message, PurpleMessageFlags flags, time_t when)
+add_message_to_history(PurpleConversation *conv, PurpleMessage *msg)
 {
 	PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
-	PurpleConversationMessage *msg;
-	PurpleConnection *gc;
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.