--- a/libpurple/purpleprotocolconversation.c Sun Nov 10 00:55:40 2024 -0600 +++ b/libpurple/purpleprotocolconversation.c Sun Nov 10 02:29:31 2024 -0600 @@ -39,13 +39,11 @@ gboolean purple_protocol_conversation_implements_create_conversation(PurpleProtocolConversation *protocol) { - PurpleProtocolConversation *protocol_conversation = NULL; PurpleProtocolConversationInterface *iface = NULL; g_return_val_if_fail(PURPLE_IS_PROTOCOL_CONVERSATION(protocol), FALSE); - protocol_conversation = PURPLE_PROTOCOL_CONVERSATION(protocol); - iface = PURPLE_PROTOCOL_CONVERSATION_GET_IFACE(protocol_conversation); + iface = PURPLE_PROTOCOL_CONVERSATION_GET_IFACE(protocol); if(iface->get_create_conversation_details == NULL) { return FALSE; @@ -140,13 +138,11 @@ gboolean purple_protocol_conversation_implements_leave_conversation(PurpleProtocolConversation *protocol) { - PurpleProtocolConversation *protocol_conversation = NULL; PurpleProtocolConversationInterface *iface = NULL; g_return_val_if_fail(PURPLE_IS_PROTOCOL_CONVERSATION(protocol), FALSE); - protocol_conversation = PURPLE_PROTOCOL_CONVERSATION(protocol); - iface = PURPLE_PROTOCOL_CONVERSATION_GET_IFACE(protocol_conversation); + iface = PURPLE_PROTOCOL_CONVERSATION_GET_IFACE(protocol); if(iface->leave_conversation_async == NULL) { return FALSE; @@ -213,6 +209,26 @@ return FALSE; } +gboolean +purple_protocol_conversation_implements_send_message(PurpleProtocolConversation *protocol) +{ + PurpleProtocolConversationInterface *iface = NULL; + + g_return_val_if_fail(PURPLE_IS_PROTOCOL_CONVERSATION(protocol), FALSE); + + iface = PURPLE_PROTOCOL_CONVERSATION_GET_IFACE(protocol); + + if(iface->send_message_async == NULL) { + return FALSE; + } + + if(iface->send_message_finish == NULL) { + return FALSE; + } + + return TRUE; +} + void purple_protocol_conversation_send_message_async(PurpleProtocolConversation *protocol, PurpleConversation *conversation,