libpurple/protocols/demo/purpledemoprotocolclient.c

Fri, 10 Mar 2023 01:16:40 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Fri, 10 Mar 2023 01:16:40 -0600
changeset 42135
1a89a067a0d5
parent 41968
2fc2db360044
child 42162
853501870190
permissions
-rw-r--r--

Add a PurpleRequestFieldString subclass

This also does an `hg cp`, though with all the renaming of the parameter names, maybe that wasn't as useful for tracking the diff.

Note, I didn't bother re-indenting some of the blocks, because they'll all eventually be moved when everything is subclassed.

Testing Done:
Compiled and opened Request Fields from the Demo protocol.

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

41285
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 *
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 * Lesser General Public License for more details.
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 *
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 */
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 #include <glib/gi18n-lib.h>
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 #include "purpledemoprotocol.h"
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22 #include "purpledemoprotocolclient.h"
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24 /******************************************************************************
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 * PurpleProtocolClient Implementation
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26 *****************************************************************************/
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
27 static gchar *
41968
2fc2db360044 Bump C standard to C99 for Demo protocol and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41285
diff changeset
28 purple_demo_protocol_status_text(G_GNUC_UNUSED PurpleProtocolClient *client,
41285
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
29 PurpleBuddy *buddy)
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 {
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31 PurplePresence *presence = NULL;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32 PurpleStatus *status = NULL;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33 const gchar *message = NULL;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34 gchar *ret = NULL;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 presence = purple_buddy_get_presence(buddy);
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 status = purple_presence_get_active_status(presence);
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 message = purple_status_get_attr_string(status, "message");
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 if(message != NULL) {
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 ret = g_markup_escape_text(message, -1);
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42 purple_util_chrreplace(ret, '\n', ' ');
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 }
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45 return ret;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 }
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 void
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49 purple_demo_protocol_client_init(PurpleProtocolClientInterface *iface) {
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
50 iface->status_text = purple_demo_protocol_status_text;
cc3c735c14f4 Split apart demo's PurpleProtocolClient implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
51 }

mercurial