--- a/libpurple/protocols/demo/meson.build Sat Mar 12 20:22:26 2022 -0600
+++ b/libpurple/protocols/demo/meson.build Sat Mar 12 23:00:44 2022 -0600
@@ -5,6 +5,8 @@
+ 'purpledemoprotocolim.c', + 'purpledemoprotocolim.h', --- a/libpurple/protocols/demo/purpledemoprotocol.c Sat Mar 12 20:22:26 2022 -0600
+++ b/libpurple/protocols/demo/purpledemoprotocol.c Sat Mar 12 23:00:44 2022 -0600
@@ -21,6 +21,7 @@
#include <glib/gi18n-lib.h>
#include "purpledemoprotocol.h"
+#include "purpledemoprotocolim.h" #include "purpledemocontacts.h"
@@ -29,69 +30,6 @@
/******************************************************************************
- * PurpleProtocolIM Implementation
- *****************************************************************************/
- PurpleConnection *connection;
- PurpleMessage *message;
-} PurpleDemoProtocolIMInfo;
-purple_demo_protocol_im_info_free(PurpleDemoProtocolIMInfo *info) {
- g_object_unref(info->message);
-purple_demo_protocol_echo_im_cb(gpointer data)
- PurpleDemoProtocolIMInfo *info = data;
- const char *who = NULL;
- PurpleMessageFlags flags;
- GDateTime *timestamp = NULL;
- /* Turn outgoing message back incoming. */
- who = purple_message_get_recipient(info->message);
- flags = purple_message_get_flags(info->message);
- flags &= ~PURPLE_MESSAGE_SEND;
- flags |= PURPLE_MESSAGE_RECV;
- timestamp = purple_message_get_timestamp(info->message);
- purple_serv_got_im(info->connection, who,
- purple_message_get_contents(info->message), flags,
- g_date_time_to_unix(timestamp));
- g_date_time_unref(timestamp);
-purple_demo_protocol_send_im(PurpleProtocolIM *im, PurpleConnection *conn,
- const gchar *who = purple_message_get_recipient(msg);
- if(purple_strequal(who, "Echo")) {
- PurpleDemoProtocolIMInfo *info = g_new(PurpleDemoProtocolIMInfo, 1);
- info->connection = conn;
- info->message = g_object_ref(msg);
- g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
- purple_demo_protocol_echo_im_cb, info,
- (GDestroyNotify)purple_demo_protocol_im_info_free);
-purple_demo_protocol_im_iface_init(PurpleProtocolIMInterface *iface) {
- iface->send = purple_demo_protocol_send_im;
-/******************************************************************************
* PurpleProtocolClient Implementation
*****************************************************************************/
@@ -171,7 +109,7 @@
G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_CLIENT,
purple_demo_protocol_client_init)
G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_IM,
- purple_demo_protocol_im_iface_init)
+ purple_demo_protocol_im_init) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/demo/purpledemoprotocolim.c Sat Mar 12 23:00:44 2022 -0600
@@ -0,0 +1,85 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see <https://www.gnu.org/licenses/>. +#include <glib/gi18n-lib.h> +#include "purpledemoprotocol.h" +#include "purpledemoprotocolim.h" +/****************************************************************************** + * PurpleProtocolIM Implementation + *****************************************************************************/ + PurpleConnection *connection; + PurpleMessage *message; +} PurpleDemoProtocolIMInfo; +purple_demo_protocol_im_info_free(PurpleDemoProtocolIMInfo *info) { + g_object_unref(info->message); +purple_demo_protocol_echo_im_cb(gpointer data) + PurpleDemoProtocolIMInfo *info = data; + const char *who = NULL; + PurpleMessageFlags flags; + GDateTime *timestamp = NULL; + /* Turn outgoing message back incoming. */ + who = purple_message_get_recipient(info->message); + flags = purple_message_get_flags(info->message); + flags &= ~PURPLE_MESSAGE_SEND; + flags |= PURPLE_MESSAGE_RECV; + timestamp = purple_message_get_timestamp(info->message); + purple_serv_got_im(info->connection, who, + purple_message_get_contents(info->message), flags, + g_date_time_to_unix(timestamp)); + g_date_time_unref(timestamp); +purple_demo_protocol_send_im(PurpleProtocolIM *im, PurpleConnection *conn, + const gchar *who = purple_message_get_recipient(msg); + if(purple_strequal(who, "Echo")) { + PurpleDemoProtocolIMInfo *info = g_new(PurpleDemoProtocolIMInfo, 1); + info->connection = conn; + info->message = g_object_ref(msg); + g_idle_add_full(G_PRIORITY_DEFAULT_IDLE, + purple_demo_protocol_echo_im_cb, info, + (GDestroyNotify)purple_demo_protocol_im_info_free); +purple_demo_protocol_im_init(PurpleProtocolIMInterface *iface) { + iface->send = purple_demo_protocol_send_im; --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/demo/purpledemoprotocolim.h Sat Mar 12 23:00:44 2022 -0600
@@ -0,0 +1,28 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see <https://www.gnu.org/licenses/>. +#ifndef PURPLE_DEMO_PROTOCOL_IM_H +#define PURPLE_DEMO_PROTOCOL_IM_H +G_GNUC_INTERNAL void purple_demo_protocol_im_init(PurpleProtocolIMInterface *iface); +#endif /* PURPLE_DEMO_PROTOCOL_IM_H */