libpurple/chat.c

Wed, 07 Aug 2019 01:15:14 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 07 Aug 2019 01:15:14 -0400
changeset 39782
db027c5e1463
parent 39759
ea1401483849
child 39812
d9367dc7edfd
permissions
-rw-r--r--

Fix broken `priv != NULL` checks in libpurple.

The `*_get_instance_private` function just returns input value + offset,
so it is impossible for `priv` to be `NULL`.

37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * purple
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * source distribution.
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * (at your option) any later version.
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * GNU General Public License for more details.
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22 */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include "internal.h"
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 #include "chat.h"
37951
c80bc6ef5d20 Not sure how this go typoed and not found until now, but here's a fix
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
25 #include "util.h"
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 typedef struct _PurpleChatPrivate PurpleChatPrivate;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 /* Private data for a chat node */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 struct _PurpleChatPrivate {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 char *alias; /* The display name of this chat. */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 PurpleAccount *account; /* The account this chat is attached to */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 GHashTable *components; /* the stuff the protocol needs to know to
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 join the chat */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 gboolean is_constructed; /* Indicates if the chat has finished being
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 constructed. */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 };
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 /* Chat property enums */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 enum
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 PROP_0,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 PROP_ALIAS,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 PROP_ACCOUNT,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 PROP_COMPONENTS,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 PROP_LAST
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 };
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 /******************************************************************************
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 * Globals
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 *****************************************************************************/
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 static GParamSpec *properties[PROP_LAST];
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
55 G_DEFINE_TYPE_WITH_PRIVATE(PurpleChat, purple_chat, PURPLE_TYPE_BLIST_NODE);
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
56
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 /******************************************************************************
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 * API
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 *****************************************************************************/
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 const char *purple_chat_get_name(PurpleChat *chat)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
63 PurpleChatPrivate *priv = NULL;
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
65 g_return_val_if_fail(PURPLE_IS_CHAT(priv), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
66
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
67 priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 if ((priv->alias != NULL) && (*priv->alias != '\0'))
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 return priv->alias;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 return purple_chat_get_name_only(chat);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 const char *purple_chat_get_name_only(PurpleChat *chat)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
77 PurpleChatPrivate *priv = NULL;
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 char *ret = NULL;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 PurpleProtocol *protocol = NULL;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
81 g_return_val_if_fail(PURPLE_IS_CHAT(priv), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
82
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
83 priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86
39759
ea1401483849 Rename *_GET_*_IFACE to more standard *_GET_IFACE.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
87 if (PURPLE_PROTOCOL_IMPLEMENTS(protocol, CHAT, info)) {
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 PurpleProtocolChatEntry *pce;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 GList *parts = purple_protocol_chat_iface_info(protocol, purple_account_get_connection(priv->account));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 pce = parts->data;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 ret = g_hash_table_lookup(priv->components, pce->identifier);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 g_list_foreach(parts, (GFunc)g_free, NULL);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 g_list_free(parts);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 return ret;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 void
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 purple_chat_set_alias(PurpleChat *chat, const char *alias)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
102 PurpleChatPrivate *priv = NULL;
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 char *old_alias;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 char *new_alias = NULL;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
106 g_return_if_fail(PURPLE_IS_CHAT(priv));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
107
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
108 priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 if ((alias != NULL) && (*alias != '\0'))
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 new_alias = purple_utf8_strip_unprintables(alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 if (!purple_strequal(priv->alias, new_alias)) {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 g_free(new_alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 return;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 old_alias = priv->alias;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 if ((new_alias != NULL) && (*new_alias != '\0'))
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 priv->alias = new_alias;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 else {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 priv->alias = NULL;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 g_free(new_alias); /* could be "\0" */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 g_object_notify_by_pspec(G_OBJECT(chat), properties[PROP_ALIAS]);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
129 purple_blist_save_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
130 PURPLE_BLIST_NODE(chat));
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
131 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
132 PURPLE_BLIST_NODE(chat));
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 chat, old_alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 g_free(old_alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 PurpleGroup *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 purple_chat_get_group(PurpleChat *chat)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 g_return_val_if_fail(PURPLE_IS_CHAT(chat), NULL);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 return PURPLE_GROUP(PURPLE_BLIST_NODE(chat)->parent);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 PurpleAccount *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148 purple_chat_get_account(PurpleChat *chat)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
150 PurpleChatPrivate *priv = NULL;
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
152 g_return_val_if_fail(PURPLE_IS_CHAT(priv), NULL);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
154 priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 return priv->account;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 GHashTable *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 purple_chat_get_components(PurpleChat *chat)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
161 PurpleChatPrivate *priv = NULL;
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
163 g_return_val_if_fail(PURPLE_IS_CHAT(priv), NULL);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
165 priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 return priv->components;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
169 /******************************************************************************
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 * GObject Stuff
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 *****************************************************************************/
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 static void
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 purple_chat_set_property(GObject *obj, guint param_id, const GValue *value,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 GParamSpec *pspec)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
176 PurpleChat *chat = PURPLE_CHAT(obj);
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
177 PurpleChatPrivate *priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 switch (param_id) {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180 case PROP_ALIAS:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 if (priv->is_constructed)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182 purple_chat_set_alias(chat, g_value_get_string(value));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183 else
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 priv->alias =
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 purple_utf8_strip_unprintables(g_value_get_string(value));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 case PROP_ACCOUNT:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188 priv->account = g_value_get_object(value);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 case PROP_COMPONENTS:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 priv->components = g_value_get_pointer(value);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 default:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 static void
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 purple_chat_get_property(GObject *obj, guint param_id, GValue *value,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 GParamSpec *pspec)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 PurpleChat *chat = PURPLE_CHAT(obj);
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
204 PurpleChatPrivate *priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 switch (param_id) {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 case PROP_ALIAS:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
208 g_value_set_string(value, priv->alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210 case PROP_ACCOUNT:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 g_value_set_object(value, purple_chat_get_account(chat));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 case PROP_COMPONENTS:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 g_value_set_pointer(value, purple_chat_get_components(chat));
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216 default:
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
217 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 break;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 /* GObject initialization function */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223 static void
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
224 purple_chat_init(PurpleChat *chat)
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 /* Called when done constructing */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 static void
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 purple_chat_constructed(GObject *object)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 PurpleChat *chat = PURPLE_CHAT(object);
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
233 PurpleChatPrivate *priv = purple_chat_get_instance_private(chat);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
235 G_OBJECT_CLASS(purple_chat_parent_class)->constructed(object);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
237 purple_blist_new_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
238 PURPLE_BLIST_NODE(chat));
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
239
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 priv->is_constructed = TRUE;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243 /* GObject finalize function */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 static void
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 purple_chat_finalize(GObject *object)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
246 {
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
247 PurpleChatPrivate *priv =
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
248 purple_chat_get_instance_private(PURPLE_CHAT(object));
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
249
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 g_free(priv->alias);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 g_hash_table_destroy(priv->components);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252
39364
54439db24429 libpurple: Port self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents: 39352
diff changeset
253 G_OBJECT_CLASS(purple_chat_parent_class)->finalize(object);
37947
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
256 /* Class initializer function */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 static void purple_chat_class_init(PurpleChatClass *klass)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
260
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261 obj_class->finalize = purple_chat_finalize;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
262
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
263 /* Setup properties */
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
264 obj_class->get_property = purple_chat_get_property;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265 obj_class->set_property = purple_chat_set_property;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
266 obj_class->constructed = purple_chat_constructed;
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
267
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 properties[PROP_ALIAS] = g_param_spec_string(
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
269 "alias",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270 "Alias",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 "The alias for the chat.",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
272 NULL,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 );
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 properties[PROP_ACCOUNT] = g_param_spec_object(
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 "account",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278 "Account",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 "The account that the chat belongs to.",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 PURPLE_TYPE_ACCOUNT,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
281 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282 );
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284 properties[PROP_COMPONENTS] = g_param_spec_pointer(
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 "components",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 "Components",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287 "The protocol components of the chat.",
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 );
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291 g_object_class_install_properties(obj_class, PROP_LAST, properties);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 }
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 PurpleChat *
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components)
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296 {
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298 g_return_val_if_fail(components != NULL, NULL);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
299
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300 return g_object_new(PURPLE_TYPE_CHAT,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
301 "account", account,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
302 "alias", alias,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303 "components", components,
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
304 NULL);
12ce09a23094 Move PurpleChat to it's own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
305 }

mercurial