Add the conversation as a parameter to PurpleProtocolIM->send

Mon, 04 Sep 2023 23:04:09 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 04 Sep 2023 23:04:09 -0500
changeset 42305
a3895b6d3621
parent 42304
51a419226147
child 42306
aee8ab56690f

Add the conversation as a parameter to PurpleProtocolIM->send

This is an incremental update so that all of the implemenations can start
moving in this direction. Eventually this be something like
PurpleProtocol->send_message or something which will be used for both ims and
chats.

Testing Done:
Compiled and send a message to the echo bot.

Bugs closed: PIDGIN-17825

Reviewed at https://reviews.imfreedom.org/r/2595/

libpurple/protocols/bonjour/bonjour.c file | annotate | diff | comparison | revisions
libpurple/protocols/demo/purpledemoprotocolim.c file | annotate | diff | comparison | revisions
libpurple/protocols/gg/message-prpl.c file | annotate | diff | comparison | revisions
libpurple/protocols/gg/message-prpl.h file | annotate | diff | comparison | revisions
libpurple/protocols/ircv3/purpleircv3protocolim.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/jabber.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/message.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/message.h file | annotate | diff | comparison | revisions
libpurple/purpleprotocolim.c file | annotate | diff | comparison | revisions
libpurple/purpleprotocolim.h file | annotate | diff | comparison | revisions
libpurple/server.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/bonjour/bonjour.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/bonjour/bonjour.c	Mon Sep 04 23:04:09 2023 -0500
@@ -242,7 +242,9 @@
 
 static int
 bonjour_send_im(G_GNUC_UNUSED PurpleProtocolIM *im,
-                PurpleConnection *connection, PurpleMessage *msg)
+                PurpleConnection *connection,
+                G_GNUC_UNUSED PurpleConversation *conversation,
+                PurpleMessage *msg)
 {
 	BonjourData *bd = purple_connection_get_protocol_data(connection);
 
--- a/libpurple/protocols/demo/purpledemoprotocolim.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/demo/purpledemoprotocolim.c	Mon Sep 04 23:04:09 2023 -0500
@@ -59,7 +59,9 @@
 
 static gint
 purple_demo_protocol_send_im(G_GNUC_UNUSED PurpleProtocolIM *im,
-                             PurpleConnection *conn, PurpleMessage *msg)
+                             PurpleConnection *conn,
+                             G_GNUC_UNUSED PurpleConversation *conversation,
+                             PurpleMessage *msg)
 {
 	const gchar *who = purple_message_get_recipient(msg);
 
--- a/libpurple/protocols/gg/message-prpl.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/gg/message-prpl.c	Mon Sep 04 23:04:09 2023 -0500
@@ -653,7 +653,9 @@
 
 int
 ggp_message_send_im(G_GNUC_UNUSED PurpleProtocolIM *pim,
-                    PurpleConnection *gc, PurpleMessage *msg)
+                    PurpleConnection *gc,
+                    G_GNUC_UNUSED PurpleConversation *conversation,
+                    PurpleMessage *msg)
 {
 	GGPInfo *info = purple_connection_get_protocol_data(gc);
 	PurpleConversation *im;
--- a/libpurple/protocols/gg/message-prpl.h	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/gg/message-prpl.h	Mon Sep 04 23:04:09 2023 -0500
@@ -43,7 +43,7 @@
 void ggp_message_got_multilogon(PurpleConnection *gc,
 	const struct gg_event_msg *ev);
 
-int ggp_message_send_im(PurpleProtocolIM *im, PurpleConnection *gc, PurpleMessage *msg);
+int ggp_message_send_im(PurpleProtocolIM *im, PurpleConnection *gc, PurpleConversation *conversation, PurpleMessage *msg);
 gchar * ggp_message_format_to_gg(PurpleConversation *conv, const gchar *text);
 
 #endif /* PURPLE_GG_MESSAGE_PRPL_H */
--- a/libpurple/protocols/ircv3/purpleircv3protocolim.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3protocolim.c	Mon Sep 04 23:04:09 2023 -0500
@@ -28,6 +28,7 @@
 static gint
 purple_ircv3_protocol_send_im(G_GNUC_UNUSED PurpleProtocolIM *im,
                               PurpleConnection *conn,
+                              G_GNUC_UNUSED PurpleConversation *conversation,
                               PurpleMessage *message)
 {
 	PurpleIRCv3Connection *connection = PURPLE_IRCV3_CONNECTION(conn);
--- a/libpurple/protocols/jabber/jabber.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/jabber/jabber.c	Mon Sep 04 23:04:09 2023 -0500
@@ -2305,7 +2305,7 @@
 
 	msg = purple_message_new_outgoing(me, who, args[1], 0);
 
-	jabber_message_send_im(PURPLE_PROTOCOL_IM(prpl), pc, msg);
+	jabber_message_send_im(PURPLE_PROTOCOL_IM(prpl), pc, NULL, msg);
 
 	g_free(who);
 	return PURPLE_CMD_RET_OK;
--- a/libpurple/protocols/jabber/message.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/jabber/message.c	Mon Sep 04 23:04:09 2023 -0500
@@ -842,7 +842,9 @@
 
 int
 jabber_message_send_im(G_GNUC_UNUSED PurpleProtocolIM *pim,
-                       PurpleConnection *gc, PurpleMessage *msg)
+                       PurpleConnection *gc,
+                       G_GNUC_UNUSED PurpleConversation *conversation,
+                       PurpleMessage *msg)
 {
 	JabberMessage *jm;
 	JabberBuddy *jb;
--- a/libpurple/protocols/jabber/message.h	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/protocols/jabber/message.h	Mon Sep 04 23:04:09 2023 -0500
@@ -71,7 +71,7 @@
 void jabber_message_send(JabberMessage *jm);
 
 void jabber_message_parse(JabberStream *js, PurpleXmlNode *packet);
-int jabber_message_send_im(PurpleProtocolIM *pim, PurpleConnection *gc, PurpleMessage *msg);
+int jabber_message_send_im(PurpleProtocolIM *pim, PurpleConnection *gc, PurpleConversation *conversation, PurpleMessage *msg);
 int jabber_message_send_chat(PurpleProtocolChat *protocol_chat, PurpleConnection *gc, int id, PurpleMessage *msg);
 
 unsigned int jabber_send_typing(PurpleProtocolIM *pim, PurpleConnection *gc, const char *who, PurpleIMTypingState state);
--- a/libpurple/purpleprotocolim.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/purpleprotocolim.c	Mon Sep 04 23:04:09 2023 -0500
@@ -36,7 +36,7 @@
  *****************************************************************************/
 gint
 purple_protocol_im_send(PurpleProtocolIM *im, PurpleConnection *gc,
-                        PurpleMessage *msg)
+                        PurpleConversation *conversation, PurpleMessage *msg)
 {
 	PurpleProtocolIMInterface *iface = NULL;
 
@@ -44,7 +44,7 @@
 
 	iface = PURPLE_PROTOCOL_IM_GET_IFACE(im);
 	if(iface && iface->send) {
-		return iface->send(im, gc, msg);
+		return iface->send(im, gc, conversation, msg);
 	}
 
 	return -1;
--- a/libpurple/purpleprotocolim.h	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/purpleprotocolim.h	Mon Sep 04 23:04:09 2023 -0500
@@ -31,6 +31,7 @@
 #include <glib-object.h>
 
 #include <libpurple/connection.h>
+#include <libpurple/purpleconversation.h>
 #include <libpurple/purpleprotocol.h>
 
 #define PURPLE_TYPE_PROTOCOL_IM (purple_protocol_im_get_type())
@@ -71,7 +72,7 @@
 
 	/*< public >*/
 	gint (*send)(PurpleProtocolIM *im, PurpleConnection *connection,
-	             PurpleMessage *msg);
+	             PurpleConversation *conversation, PurpleMessage *msg);
 
 	guint (*send_typing)(PurpleProtocolIM *im, PurpleConnection *connection,
 	                     const gchar *name, PurpleIMTypingState state);
@@ -86,6 +87,7 @@
  * purple_protocol_im_send:
  * @im: The #PurpleProtocolIM instance.
  * @connection: The #PurpleConnection to use.
+ * @conversation: The [class@Conversation] this message is for.
  * @msg: The #PurpleMessage to send.
  *
  * Sends @msg out over @connection.
@@ -95,6 +97,7 @@
  */
 gint purple_protocol_im_send(PurpleProtocolIM *im,
                              PurpleConnection *connection,
+                             PurpleConversation *conversation,
                              PurpleMessage *msg);
 
 /**
--- a/libpurple/server.c	Mon Sep 04 22:57:36 2023 -0500
+++ b/libpurple/server.c	Mon Sep 04 23:04:09 2023 -0500
@@ -86,7 +86,7 @@
 	if(PURPLE_IS_PROTOCOL_IM(protocol)) {
 		PurpleProtocolIM *pim = PURPLE_PROTOCOL_IM(protocol);
 
-		val = purple_protocol_im_send(pim, gc, msg);
+		val = purple_protocol_im_send(pim, gc, im, msg);
 	}
 
 	if(im && purple_im_conversation_get_send_typed_timeout(PURPLE_IM_CONVERSATION(im)))

mercurial