libpurple/pounce.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 25859
b42be7bb9dac
child 28177
e62fe687ca6c
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 4793
diff changeset
1 /**
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
2 * @file pounce.c Buddy Pounce API
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
3 * @ingroup core
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
4 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
5
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
6 /* purple
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7627
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7627
diff changeset
10 * source distribution.
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
11 *
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 *
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 *
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18209
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
26 #include "internal.h"
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
27 #include "conversation.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
28 #include "debug.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
29 #include "pounce.h"
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
30
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
31 #include "debug.h"
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
32 #include "pounce.h"
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
33 #include "util.h"
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
34
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
35 typedef struct
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
36 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
37 GString *buffer;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
38
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
39 PurplePounce *pounce;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
40 PurplePounceEvent events;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
41 PurplePounceOption options;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
42
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
43 char *ui_name;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
44 char *pouncee;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
45 char *protocol_id;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
46 char *event_type;
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
47 char *option_type;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
48 char *action_name;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
49 char *param_name;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
50 char *account_name;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
51
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
52 } PounceParserData;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
53
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
54 typedef struct
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
55 {
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
56 char *name;
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
57
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
58 gboolean enabled;
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
59
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
60 GHashTable *atts;
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
61
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
62 } PurplePounceActionData;
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
63
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
64 typedef struct
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
65 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
66 char *ui;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
67 PurplePounceCb cb;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
68 void (*new_pounce)(PurplePounce *);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
69 void (*free_pounce)(PurplePounce *);
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
70
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
71 } PurplePounceHandler;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
72
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
73
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
74 static GHashTable *pounce_handlers = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
75 static GList *pounces = NULL;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
76 static guint save_timer = 0;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
77 static gboolean pounces_loaded = FALSE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
78
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
80 /*********************************************************************
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
81 * Private utility functions *
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
82 *********************************************************************/
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
83
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
84 static PurplePounceActionData *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
85 find_action_data(const PurplePounce *pounce, const char *name)
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
86 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
87 PurplePounceActionData *action;
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
88
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
89 g_return_val_if_fail(pounce != NULL, NULL);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
90 g_return_val_if_fail(name != NULL, NULL);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
91
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
92 action = g_hash_table_lookup(pounce->actions, name);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
93
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
94 return action;
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
95 }
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
96
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
97 static void
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
98 free_action_data(gpointer data)
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
99 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
100 PurplePounceActionData *action_data = data;
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
101
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
102 g_free(action_data->name);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
103
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
104 g_hash_table_destroy(action_data->atts);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
105
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
106 g_free(action_data);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
107 }
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
108
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
109
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
110 /*********************************************************************
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
111 * Writing to disk *
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
112 *********************************************************************/
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
113
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
114 static void
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
115 action_parameter_to_xmlnode(gpointer key, gpointer value, gpointer user_data)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
116 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
117 const char *name, *param_value;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
118 xmlnode *node, *child;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
119
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
120 name = (const char *)key;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
121 param_value = (const char *)value;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
122 node = (xmlnode *)user_data;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
123
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
124 child = xmlnode_new_child(node, "param");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
125 xmlnode_set_attrib(child, "name", name);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
126 xmlnode_insert_data(child, param_value, -1);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
127 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
128
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
129 static void
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
130 action_parameter_list_to_xmlnode(gpointer key, gpointer value, gpointer user_data)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
131 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
132 const char *action;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
133 PurplePounceActionData *action_data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
134 xmlnode *node, *child;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
135
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
136 action = (const char *)key;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
137 action_data = (PurplePounceActionData *)value;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
138 node = (xmlnode *)user_data;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
139
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
140 if (!action_data->enabled)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
141 return;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
142
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
143 child = xmlnode_new_child(node, "action");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
144 xmlnode_set_attrib(child, "type", action);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
145
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
146 g_hash_table_foreach(action_data->atts, action_parameter_to_xmlnode, child);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
147 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
148
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
149 static void
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
150 add_event_to_xmlnode(xmlnode *node, const char *type)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
151 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
152 xmlnode *child;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
153
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
154 child = xmlnode_new_child(node, "event");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
155 xmlnode_set_attrib(child, "type", type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
156 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
157
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
158 static void
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
159 add_option_to_xmlnode(xmlnode *node, const char *type)
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
160 {
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
161 xmlnode *child;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
162
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
163 child = xmlnode_new_child(node, "option");
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
164 xmlnode_set_attrib(child, "type", type);
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
165 }
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
166
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
167 static xmlnode *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
168 pounce_to_xmlnode(PurplePounce *pounce)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
169 {
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
170 xmlnode *node, *child;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
171 PurpleAccount *pouncer;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
172 PurplePounceEvent events;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
173 PurplePounceOption options;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
174
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
175 pouncer = purple_pounce_get_pouncer(pounce);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
176 events = purple_pounce_get_events(pounce);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
177 options = purple_pounce_get_options(pounce);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
178
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
179 node = xmlnode_new("pounce");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
180 xmlnode_set_attrib(node, "ui", pounce->ui_type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
181
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
182 child = xmlnode_new_child(node, "account");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
183 xmlnode_set_attrib(child, "protocol", pouncer->protocol_id);
21908
0e933a80c8fd Save the normalized account name for pounces and custom statuses. References #2049.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
184 xmlnode_insert_data(child,
0e933a80c8fd Save the normalized account name for pounces and custom statuses. References #2049.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
185 purple_normalize(pouncer, purple_account_get_username(pouncer)), -1);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
186
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
187 child = xmlnode_new_child(node, "pouncee");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
188 xmlnode_insert_data(child, purple_pounce_get_pouncee(pounce), -1);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
189
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
190 /* Write pounce options */
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
191 child = xmlnode_new_child(node, "options");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
192 if (options & PURPLE_POUNCE_OPTION_AWAY)
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
193 add_option_to_xmlnode(child, "on-away");
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
194
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
195 /* Write pounce events */
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
196 child = xmlnode_new_child(node, "events");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
197 if (events & PURPLE_POUNCE_SIGNON)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
198 add_event_to_xmlnode(child, "sign-on");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
199 if (events & PURPLE_POUNCE_SIGNOFF)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
200 add_event_to_xmlnode(child, "sign-off");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
201 if (events & PURPLE_POUNCE_AWAY)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
202 add_event_to_xmlnode(child, "away");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
203 if (events & PURPLE_POUNCE_AWAY_RETURN)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
204 add_event_to_xmlnode(child, "return-from-away");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
205 if (events & PURPLE_POUNCE_IDLE)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
206 add_event_to_xmlnode(child, "idle");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
207 if (events & PURPLE_POUNCE_IDLE_RETURN)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
208 add_event_to_xmlnode(child, "return-from-idle");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
209 if (events & PURPLE_POUNCE_TYPING)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
210 add_event_to_xmlnode(child, "start-typing");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
211 if (events & PURPLE_POUNCE_TYPED)
13844
835b8f7b3d1d [gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents: 13229
diff changeset
212 add_event_to_xmlnode(child, "typed");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
213 if (events & PURPLE_POUNCE_TYPING_STOPPED)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
214 add_event_to_xmlnode(child, "stop-typing");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
215 if (events & PURPLE_POUNCE_MESSAGE_RECEIVED)
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
216 add_event_to_xmlnode(child, "message-received");
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
217
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
218 /* Write pounce actions */
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
219 child = xmlnode_new_child(node, "actions");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
220 g_hash_table_foreach(pounce->actions, action_parameter_list_to_xmlnode, child);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
221
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
222 if (purple_pounce_get_save(pounce))
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
223 child = xmlnode_new_child(node, "save");
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
224
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
225 return node;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
226 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
227
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
228 static xmlnode *
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
229 pounces_to_xmlnode(void)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
230 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
231 xmlnode *node, *child;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
232 GList *cur;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
233
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
234 node = xmlnode_new("pounces");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
235 xmlnode_set_attrib(node, "version", "1.0");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
236
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
237 for (cur = purple_pounces_get_all(); cur != NULL; cur = cur->next)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
238 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
239 child = pounce_to_xmlnode(cur->data);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
240 xmlnode_insert_child(node, child);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
241 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
242
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
243 return node;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
244 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
245
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
246 static void
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
247 sync_pounces(void)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
248 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
249 xmlnode *node;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
250 char *data;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
251
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
252 if (!pounces_loaded)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
253 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
254 purple_debug_error("pounce", "Attempted to save buddy pounces before "
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
255 "they were read!\n");
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
256 return;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
257 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
258
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
259 node = pounces_to_xmlnode();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
260 data = xmlnode_to_formatted_str(node, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
261 purple_util_write_data_to_file("pounces.xml", data, -1);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
262 g_free(data);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
263 xmlnode_free(node);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
264 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
265
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
266 static gboolean
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
267 save_cb(gpointer data)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
268 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
269 sync_pounces();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
270 save_timer = 0;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
271 return FALSE;
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
272 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
273
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
274 static void
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
275 schedule_pounces_save(void)
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
276 {
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
277 if (save_timer == 0)
18068
b6554e3c8224 merge of '1442df274a24edc9a31194327bd00dfbcf478720'
Richard Laager <rlaager@pidgin.im>
parents: 18067 15884
diff changeset
278 save_timer = purple_timeout_add_seconds(5, save_cb, NULL);
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
279 }
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
280
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
281
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
282 /*********************************************************************
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
283 * Reading from disk *
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
284 *********************************************************************/
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
285
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
286 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
287 free_parser_data(gpointer user_data)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
288 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
289 PounceParserData *data = user_data;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
290
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
291 if (data->buffer != NULL)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
292 g_string_free(data->buffer, TRUE);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
293
13229
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
294 g_free(data->ui_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
295 g_free(data->pouncee);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
296 g_free(data->protocol_id);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
297 g_free(data->event_type);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
298 g_free(data->option_type);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
299 g_free(data->action_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
300 g_free(data->param_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
301 g_free(data->account_name);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
302
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
303 g_free(data);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
304 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
305
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
306 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
307 start_element_handler(GMarkupParseContext *context,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
308 const gchar *element_name,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
309 const gchar **attribute_names,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
310 const gchar **attribute_values,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
311 gpointer user_data, GError **error)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
312 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
313 PounceParserData *data = user_data;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
314 GHashTable *atts;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
315 int i;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
316
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
317 atts = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
318
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
319 for (i = 0; attribute_names[i] != NULL; i++) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
320 g_hash_table_insert(atts, g_strdup(attribute_names[i]),
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
321 g_strdup(attribute_values[i]));
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
322 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
323
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
324 if (data->buffer != NULL) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
325 g_string_free(data->buffer, TRUE);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
326 data->buffer = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
327 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
328
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
329 if (purple_strequal(element_name, "pounce")) {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
330 const char *ui = g_hash_table_lookup(atts, "ui");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
331
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
332 if (ui == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
333 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
334 "Unset 'ui' parameter for pounce!\n");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
335 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
336 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
337 data->ui_name = g_strdup(ui);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
338
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
339 data->events = 0;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
340 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
341 else if (purple_strequal(element_name, "account")) {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
342 const char *protocol_id = g_hash_table_lookup(atts, "protocol");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
343
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
344 if (protocol_id == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
345 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
346 "Unset 'protocol' parameter for account!\n");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
347 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
348 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
349 data->protocol_id = g_strdup(protocol_id);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
350 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
351 else if (purple_strequal(element_name, "option")) {
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
352 const char *type = g_hash_table_lookup(atts, "type");
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
353
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
354 if (type == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
355 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
356 "Unset 'type' parameter for option!\n");
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
357 }
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
358 else
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
359 data->option_type = g_strdup(type);
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
360 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
361 else if (purple_strequal(element_name, "event")) {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
362 const char *type = g_hash_table_lookup(atts, "type");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
363
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
364 if (type == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
365 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
366 "Unset 'type' parameter for event!\n");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
367 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
368 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
369 data->event_type = g_strdup(type);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
370 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
371 else if (purple_strequal(element_name, "action")) {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
372 const char *type = g_hash_table_lookup(atts, "type");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
373
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
374 if (type == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
375 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
376 "Unset 'type' parameter for action!\n");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
377 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
378 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
379 data->action_name = g_strdup(type);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
380 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
381 else if (purple_strequal(element_name, "param")) {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
382 const char *param_name = g_hash_table_lookup(atts, "name");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
383
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
384 if (param_name == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
385 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
386 "Unset 'name' parameter for param!\n");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
387 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
388 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
389 data->param_name = g_strdup(param_name);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
390 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
391
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
392 g_hash_table_destroy(atts);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
393 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
394
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
395 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
396 end_element_handler(GMarkupParseContext *context, const gchar *element_name,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
397 gpointer user_data, GError **error)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
398 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
399 PounceParserData *data = user_data;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
400 gchar *buffer = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
401
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
402 if (data->buffer != NULL) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
403 buffer = g_string_free(data->buffer, FALSE);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
404 data->buffer = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
405 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
406
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
407 if (purple_strequal(element_name, "account")) {
15482
b943b932a41b Make sure the pounces, buddy-aliases, savedstatuses etc. saved before the aim/icq split works after the split. The util function _gaim_oscar_convert will be removed at a 'suitable' time in the future.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
408 char *tmp;
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
409 g_free(data->account_name);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
410 data->account_name = g_strdup(buffer);
15482
b943b932a41b Make sure the pounces, buddy-aliases, savedstatuses etc. saved before the aim/icq split works after the split. The util function _gaim_oscar_convert will be removed at a 'suitable' time in the future.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
411 tmp = data->protocol_id;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
412 data->protocol_id = g_strdup(_purple_oscar_convert(buffer, tmp));
15482
b943b932a41b Make sure the pounces, buddy-aliases, savedstatuses etc. saved before the aim/icq split works after the split. The util function _gaim_oscar_convert will be removed at a 'suitable' time in the future.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
413 g_free(tmp);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
414 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
415 else if (purple_strequal(element_name, "pouncee")) {
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
416 g_free(data->pouncee);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
417 data->pouncee = g_strdup(buffer);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
418 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
419 else if (purple_strequal(element_name, "option")) {
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
420 if (purple_strequal(data->option_type, "on-away"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
421 data->options |= PURPLE_POUNCE_OPTION_AWAY;
13844
835b8f7b3d1d [gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents: 13229
diff changeset
422
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
423 g_free(data->option_type);
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
424 data->option_type = NULL;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
425 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
426 else if (purple_strequal(element_name, "event")) {
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
427 if (purple_strequal(data->event_type, "sign-on"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
428 data->events |= PURPLE_POUNCE_SIGNON;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
429 else if (purple_strequal(data->event_type, "sign-off"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
430 data->events |= PURPLE_POUNCE_SIGNOFF;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
431 else if (purple_strequal(data->event_type, "away"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
432 data->events |= PURPLE_POUNCE_AWAY;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
433 else if (purple_strequal(data->event_type, "return-from-away"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
434 data->events |= PURPLE_POUNCE_AWAY_RETURN;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
435 else if (purple_strequal(data->event_type, "idle"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
436 data->events |= PURPLE_POUNCE_IDLE;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
437 else if (purple_strequal(data->event_type, "return-from-idle"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
438 data->events |= PURPLE_POUNCE_IDLE_RETURN;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
439 else if (purple_strequal(data->event_type, "start-typing"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
440 data->events |= PURPLE_POUNCE_TYPING;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
441 else if (purple_strequal(data->event_type, "typed"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
442 data->events |= PURPLE_POUNCE_TYPED;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
443 else if (purple_strequal(data->event_type, "stop-typing"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
444 data->events |= PURPLE_POUNCE_TYPING_STOPPED;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
445 else if (purple_strequal(data->event_type, "message-received"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
446 data->events |= PURPLE_POUNCE_MESSAGE_RECEIVED;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
447
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
448 g_free(data->event_type);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
449 data->event_type = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
450 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
451 else if (purple_strequal(element_name, "action")) {
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
452 if (data->pounce != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
453 purple_pounce_action_register(data->pounce, data->action_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
454 purple_pounce_action_set_enabled(data->pounce, data->action_name, TRUE);
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
455 }
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
456
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
457 g_free(data->action_name);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
458 data->action_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
459 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
460 else if (purple_strequal(element_name, "param")) {
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
461 if (data->pounce != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
462 purple_pounce_action_set_attribute(data->pounce, data->action_name,
9598
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
463 data->param_name, buffer);
952f38eaf13d [gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents: 8549
diff changeset
464 }
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
465
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
466 g_free(data->param_name);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
467 data->param_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
468 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
469 else if (purple_strequal(element_name, "events")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
470 PurpleAccount *account;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
471
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
472 account = purple_accounts_find(data->account_name, data->protocol_id);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
473
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
474 g_free(data->account_name);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
475 g_free(data->protocol_id);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
476
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
477 data->account_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
478 data->protocol_id = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
479
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
480 if (account == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
481 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
482 "Account for pounce not found!\n");
12002
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
483 /*
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
484 * This pounce has effectively been removed, so make
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
485 * sure that we save the changes to pounces.xml
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
486 */
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
487 schedule_pounces_save();
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
488 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
489 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
490 purple_debug(PURPLE_DEBUG_INFO, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
491 "Creating pounce: %s, %s\n", data->ui_name,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
492 data->pouncee);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
493
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
494 data->pounce = purple_pounce_new(data->ui_name, account,
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
495 data->pouncee, data->events,
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
496 data->options);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
497 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
498
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
499 g_free(data->pouncee);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
500 data->pouncee = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
501 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
502 else if (purple_strequal(element_name, "save")) {
12002
4920ce1f4eac [gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11935
diff changeset
503 if (data->pounce != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
504 purple_pounce_set_save(data->pounce, TRUE);
5878
8d6734d19691 [gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
505 }
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
506 else if (purple_strequal(element_name, "pounce")) {
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
507 data->pounce = NULL;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
508 data->events = 0;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
509 data->options = 0;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
510
13229
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
511 g_free(data->ui_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
512 g_free(data->pouncee);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
513 g_free(data->protocol_id);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
514 g_free(data->event_type);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
515 g_free(data->option_type);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
516 g_free(data->action_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
517 g_free(data->param_name);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
518 g_free(data->account_name);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
519
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
520 data->ui_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
521 data->pounce = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
522 data->protocol_id = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
523 data->event_type = NULL;
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
524 data->option_type = NULL;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
525 data->action_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
526 data->param_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
527 data->account_name = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
528 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
529
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13844
diff changeset
530 g_free(buffer);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
531 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
532
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
533 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
534 text_handler(GMarkupParseContext *context, const gchar *text,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
535 gsize text_len, gpointer user_data, GError **error)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
536 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
537 PounceParserData *data = user_data;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
538
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
539 if (data->buffer == NULL)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
540 data->buffer = g_string_new_len(text, text_len);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
541 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
542 g_string_append_len(data->buffer, text, text_len);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
543 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
544
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
545 static GMarkupParser pounces_parser =
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
546 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
547 start_element_handler,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
548 end_element_handler,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
549 text_handler,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
550 NULL,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
551 NULL
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
552 };
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
553
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
554 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
555 purple_pounces_load(void)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
556 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
557 gchar *filename = g_build_filename(purple_user_dir(), "pounces.xml", NULL);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
558 gchar *contents = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
559 gsize length;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
560 GMarkupParseContext *context;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
561 GError *error = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
562 PounceParserData *parser_data;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
563
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
564 if (filename == NULL) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
565 pounces_loaded = TRUE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
566 return FALSE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
567 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
568
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
569 if (!g_file_get_contents(filename, &contents, &length, &error)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
570 purple_debug(PURPLE_DEBUG_ERROR, "pounce",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
571 "Error reading pounces: %s\n", error->message);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
572
5940
b815b54e3d2b [gaim-migrate @ 6380]
Nathan Walp <nwalp@pidgin.im>
parents: 5878
diff changeset
573 g_free(filename);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
574 g_error_free(error);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
575
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
576 pounces_loaded = TRUE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
577 return FALSE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
578 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
579
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
580 parser_data = g_new0(PounceParserData, 1);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
581
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
582 context = g_markup_parse_context_new(&pounces_parser, 0,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
583 parser_data, free_parser_data);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
584
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
585 if (!g_markup_parse_context_parse(context, contents, length, NULL)) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
586 g_markup_parse_context_free(context);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
587 g_free(contents);
5940
b815b54e3d2b [gaim-migrate @ 6380]
Nathan Walp <nwalp@pidgin.im>
parents: 5878
diff changeset
588 g_free(filename);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
589
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
590 pounces_loaded = TRUE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
591
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
592 return FALSE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
593 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
594
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
595 if (!g_markup_parse_context_end_parse(context, NULL)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
596 purple_debug(PURPLE_DEBUG_ERROR, "pounce", "Error parsing %s\n",
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
597 filename);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
598
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
599 g_markup_parse_context_free(context);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
600 g_free(contents);
5940
b815b54e3d2b [gaim-migrate @ 6380]
Nathan Walp <nwalp@pidgin.im>
parents: 5878
diff changeset
601 g_free(filename);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
602 pounces_loaded = TRUE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
603
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
604 return FALSE;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
605 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
606
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
607 g_markup_parse_context_free(context);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
608 g_free(contents);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
609 g_free(filename);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
610
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
611 pounces_loaded = TRUE;
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
612
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
613 return TRUE;
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
614 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
615
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
616
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
617 PurplePounce *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
618 purple_pounce_new(const char *ui_type, PurpleAccount *pouncer,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
619 const char *pouncee, PurplePounceEvent event,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
620 PurplePounceOption option)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
621 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
622 PurplePounce *pounce;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
623 PurplePounceHandler *handler;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
624
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
625 g_return_val_if_fail(ui_type != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
626 g_return_val_if_fail(pouncer != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
627 g_return_val_if_fail(pouncee != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
628 g_return_val_if_fail(event != 0, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
629
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
630 pounce = g_new0(PurplePounce, 1);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
631
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
632 pounce->ui_type = g_strdup(ui_type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
633 pounce->pouncer = pouncer;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
634 pounce->pouncee = g_strdup(pouncee);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
635 pounce->events = event;
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
636 pounce->options = option;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
637
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
638 pounce->actions = g_hash_table_new_full(g_str_hash, g_str_equal,
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
639 g_free, free_action_data);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
640
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
641 handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
642
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
643 if (handler != NULL && handler->new_pounce != NULL)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
644 handler->new_pounce(pounce);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
645
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
646 pounces = g_list_append(pounces, pounce);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
647
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
648 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
649
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
650 return pounce;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
651 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
652
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
653 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
654 purple_pounce_destroy(PurplePounce *pounce)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
655 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
656 PurplePounceHandler *handler;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
657
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
658 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
659
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
660 handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
661
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
662 pounces = g_list_remove(pounces, pounce);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
663
13229
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
664 g_free(pounce->ui_type);
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
665 g_free(pounce->pouncee);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
666
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
667 g_hash_table_destroy(pounce->actions);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
668
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
669 if (handler != NULL && handler->free_pounce != NULL)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
670 handler->free_pounce(pounce);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
671
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
672 g_free(pounce);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
673
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
674 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
675 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
676
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
677 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
678 purple_pounce_destroy_all_by_account(PurpleAccount *account)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
679 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
680 PurpleAccount *pouncer;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
681 PurplePounce *pounce;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
682 GList *l, *l_next;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
683
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
684 g_return_if_fail(account != NULL);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
685
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
686 for (l = purple_pounces_get_all(); l != NULL; l = l_next)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
687 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
688 pounce = (PurplePounce *)l->data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
689 l_next = l->next;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
690
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
691 pouncer = purple_pounce_get_pouncer(pounce);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
692 if (pouncer == account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
693 purple_pounce_destroy(pounce);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
694 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
695 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
696
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
697 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
698 purple_pounce_set_events(PurplePounce *pounce, PurplePounceEvent events)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
699 {
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
700 g_return_if_fail(pounce != NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
701 g_return_if_fail(events != PURPLE_POUNCE_NONE);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
702
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
703 pounce->events = events;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
704
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
705 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
706 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
707
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
708 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
709 purple_pounce_set_options(PurplePounce *pounce, PurplePounceOption options)
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
710 {
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
711 g_return_if_fail(pounce != NULL);
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
712
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
713 pounce->options = options;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
714
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
715 schedule_pounces_save();
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
716 }
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
717
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
718 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
719 purple_pounce_set_pouncer(PurplePounce *pounce, PurpleAccount *pouncer)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
720 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
721 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
722 g_return_if_fail(pouncer != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
723
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
724 pounce->pouncer = pouncer;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
725
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
726 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
727 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
728
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
729 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
730 purple_pounce_set_pouncee(PurplePounce *pounce, const char *pouncee)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
731 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
732 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
733 g_return_if_fail(pouncee != NULL);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
734
13229
d5c9c7394e02 [gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12694
diff changeset
735 g_free(pounce->pouncee);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13844
diff changeset
736 pounce->pouncee = g_strdup(pouncee);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
737
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
738 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
739 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
740
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
741 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
742 purple_pounce_set_save(PurplePounce *pounce, gboolean save)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
743 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
744 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
745
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
746 pounce->save = save;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
747
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
748 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
749 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
750
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
751 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
752 purple_pounce_action_register(PurplePounce *pounce, const char *name)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
753 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
754 PurplePounceActionData *action_data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
755
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
756 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
757 g_return_if_fail(name != NULL);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
758
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
759 if (g_hash_table_lookup(pounce->actions, name) != NULL)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
760 return;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
761
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
762 action_data = g_new0(PurplePounceActionData, 1);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
763
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
764 action_data->name = g_strdup(name);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
765 action_data->enabled = FALSE;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
766 action_data->atts = g_hash_table_new_full(g_str_hash, g_str_equal,
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
767 g_free, g_free);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
768
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
769 g_hash_table_insert(pounce->actions, g_strdup(name), action_data);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
770
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
771 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
772 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
773
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
774 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
775 purple_pounce_action_set_enabled(PurplePounce *pounce, const char *action,
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
776 gboolean enabled)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
777 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
778 PurplePounceActionData *action_data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
779
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
780 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
781 g_return_if_fail(action != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
782
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
783 action_data = find_action_data(pounce, action);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
784
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
785 g_return_if_fail(action_data != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
786
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
787 action_data->enabled = enabled;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
788
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
789 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
790 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
791
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
792 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
793 purple_pounce_action_set_attribute(PurplePounce *pounce, const char *action,
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
794 const char *attr, const char *value)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
795 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
796 PurplePounceActionData *action_data;
5878
8d6734d19691 [gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
797
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
798 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
799 g_return_if_fail(action != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
800 g_return_if_fail(attr != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
801
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
802 action_data = find_action_data(pounce, action);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
803
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
804 g_return_if_fail(action_data != NULL);
5878
8d6734d19691 [gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
805
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
806 if (value == NULL)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
807 g_hash_table_remove(action_data->atts, attr);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
808 else
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
809 g_hash_table_insert(action_data->atts, g_strdup(attr),
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
810 g_strdup(value));
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
811
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
812 schedule_pounces_save();
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
813 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
814
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
815 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
816 purple_pounce_set_data(PurplePounce *pounce, void *data)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
817 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
818 g_return_if_fail(pounce != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
819
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
820 pounce->data = data;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
821
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
822 schedule_pounces_save();
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
823 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
824
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
825 PurplePounceEvent
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
826 purple_pounce_get_events(const PurplePounce *pounce)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
827 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
828 g_return_val_if_fail(pounce != NULL, PURPLE_POUNCE_NONE);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
829
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
830 return pounce->events;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
831 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
832
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
833 PurplePounceOption
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
834 purple_pounce_get_options(const PurplePounce *pounce)
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
835 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
836 g_return_val_if_fail(pounce != NULL, PURPLE_POUNCE_OPTION_NONE);
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
837
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
838 return pounce->options;
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
839 }
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
840
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
841 PurpleAccount *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
842 purple_pounce_get_pouncer(const PurplePounce *pounce)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
843 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
844 g_return_val_if_fail(pounce != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
845
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
846 return pounce->pouncer;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
847 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
848
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
849 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
850 purple_pounce_get_pouncee(const PurplePounce *pounce)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
851 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
852 g_return_val_if_fail(pounce != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
853
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
854 return pounce->pouncee;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
855 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
856
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
857 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
858 purple_pounce_get_save(const PurplePounce *pounce)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
859 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
860 g_return_val_if_fail(pounce != NULL, FALSE);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
861
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
862 return pounce->save;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
863 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
864
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
865 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
866 purple_pounce_action_is_enabled(const PurplePounce *pounce, const char *action)
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
867 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
868 PurplePounceActionData *action_data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
869
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
870 g_return_val_if_fail(pounce != NULL, FALSE);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
871 g_return_val_if_fail(action != NULL, FALSE);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
872
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
873 action_data = find_action_data(pounce, action);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
874
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
875 g_return_val_if_fail(action_data != NULL, FALSE);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
876
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
877 return action_data->enabled;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
878 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
879
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
880 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
881 purple_pounce_action_get_attribute(const PurplePounce *pounce,
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
882 const char *action, const char *attr)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
883 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
884 PurplePounceActionData *action_data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
885
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
886 g_return_val_if_fail(pounce != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
887 g_return_val_if_fail(action != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
888 g_return_val_if_fail(attr != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
889
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
890 action_data = find_action_data(pounce, action);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
891
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
892 g_return_val_if_fail(action_data != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
893
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
894 return g_hash_table_lookup(action_data->atts, attr);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
895 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
896
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
897 void *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
898 purple_pounce_get_data(const PurplePounce *pounce)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
899 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
900 g_return_val_if_fail(pounce != NULL, NULL);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
901
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
902 return pounce->data;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
903 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
904
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
905 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
906 purple_pounce_execute(const PurpleAccount *pouncer, const char *pouncee,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
907 PurplePounceEvent events)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
908 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
909 PurplePounce *pounce;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
910 PurplePounceHandler *handler;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
911 PurplePresence *presence;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
912 GList *l, *l_next;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
913 char *norm_pouncee;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
914
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
915 g_return_if_fail(pouncer != NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
916 g_return_if_fail(pouncee != NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
917 g_return_if_fail(events != PURPLE_POUNCE_NONE);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
918
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
919 norm_pouncee = g_strdup(purple_normalize(pouncer, pouncee));
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
920
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
921 for (l = purple_pounces_get_all(); l != NULL; l = l_next)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
922 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
923 pounce = (PurplePounce *)l->data;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
924 l_next = l->next;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
925
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
926 presence = purple_account_get_presence(pouncer);
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
927
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
928 if ((purple_pounce_get_events(pounce) & events) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
929 (purple_pounce_get_pouncer(pounce) == pouncer) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
930 !purple_utf8_strcasecmp(purple_normalize(pouncer, purple_pounce_get_pouncee(pounce)),
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
931 norm_pouncee) &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
932 (pounce->options == PURPLE_POUNCE_OPTION_NONE ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
933 (pounce->options & PURPLE_POUNCE_OPTION_AWAY &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
934 !purple_presence_is_available(presence))))
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
935 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
936 handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
937
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
938 if (handler != NULL && handler->cb != NULL)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
939 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
940 handler->cb(pounce, events, purple_pounce_get_data(pounce));
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
941
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
942 if (!purple_pounce_get_save(pounce))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
943 purple_pounce_destroy(pounce);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
944 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
945 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
946 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
947
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
948 g_free(norm_pouncee);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
949 }
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
950
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
951 PurplePounce *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
952 purple_find_pounce(const PurpleAccount *pouncer, const char *pouncee,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
953 PurplePounceEvent events)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
954 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
955 PurplePounce *pounce = NULL;
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
956 GList *l;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
957 char *norm_pouncee;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
958
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
959 g_return_val_if_fail(pouncer != NULL, NULL);
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
960 g_return_val_if_fail(pouncee != NULL, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
961 g_return_val_if_fail(events != PURPLE_POUNCE_NONE, NULL);
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
962
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
963 norm_pouncee = g_strdup(purple_normalize(pouncer, pouncee));
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
964
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
965 for (l = purple_pounces_get_all(); l != NULL; l = l->next)
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
966 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
967 pounce = (PurplePounce *)l->data;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
968
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
969 if ((purple_pounce_get_events(pounce) & events) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
970 (purple_pounce_get_pouncer(pounce) == pouncer) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
971 !purple_utf8_strcasecmp(purple_normalize(pouncer, purple_pounce_get_pouncee(pounce)),
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
972 norm_pouncee))
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
973 {
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
974 break;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
975 }
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
976
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
977 pounce = NULL;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
978 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
979
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
980 g_free(norm_pouncee);
10399
67995cae36c0 [gaim-migrate @ 11630]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9598
diff changeset
981
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
982 return pounce;
5866
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
983 }
5caedbcd1bb7 [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5864
diff changeset
984
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
985 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
986 purple_pounces_register_handler(const char *ui, PurplePounceCb cb,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
987 void (*new_pounce)(PurplePounce *pounce),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
988 void (*free_pounce)(PurplePounce *pounce))
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
989 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
990 PurplePounceHandler *handler;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
991
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
992 g_return_if_fail(ui != NULL);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
993 g_return_if_fail(cb != NULL);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
994
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
995 handler = g_new0(PurplePounceHandler, 1);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
996
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
997 handler->ui = g_strdup(ui);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
998 handler->cb = cb;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
999 handler->new_pounce = new_pounce;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1000 handler->free_pounce = free_pounce;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1001
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1002 g_hash_table_insert(pounce_handlers, g_strdup(ui), handler);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1003 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1004
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1005 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1006 purple_pounces_unregister_handler(const char *ui)
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1007 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1008 g_return_if_fail(ui != NULL);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1009
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1010 g_hash_table_remove(pounce_handlers, ui);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1011 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1012
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 4793
diff changeset
1013 GList *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1014 purple_pounces_get_all(void)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 4793
diff changeset
1015 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 4793
diff changeset
1016 return pounces;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 4793
diff changeset
1017 }
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1018
18209
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1019 GList *purple_pounces_get_all_for_ui(const char *ui)
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1020 {
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1021 GList *list = NULL, *iter;
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1022 g_return_val_if_fail(ui != NULL, NULL);
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1023
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1024 for (iter = pounces; iter; iter = iter->next) {
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1025 PurplePounce *pounce = iter->data;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
1026 if (purple_strequal(pounce->ui_type, ui))
18209
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1027 list = g_list_prepend(list, pounce);
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1028 }
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1029 list = g_list_reverse(list);
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1030 return list;
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1031 }
5f63822878eb Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18068
diff changeset
1032
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1033 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1034 free_pounce_handler(gpointer user_data)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1035 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1036 PurplePounceHandler *handler = (PurplePounceHandler *)user_data;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1037
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1038 g_free(handler->ui);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1039 g_free(handler);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1040 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1041
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1042 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1043 buddy_state_cb(PurpleBuddy *buddy, PurplePounceEvent event)
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1044 {
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1045 PurpleAccount *account = purple_buddy_get_account(buddy);
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1046 const gchar *name = purple_buddy_get_name(buddy);
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1047
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1048 purple_pounce_execute(account, name, event);
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1049 }
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1050
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1051 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1052 buddy_status_changed_cb(PurpleBuddy *buddy, PurpleStatus *old_status,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1053 PurpleStatus *status)
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1054 {
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1055 PurpleAccount *account = purple_buddy_get_account(buddy);
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1056 const gchar *name = purple_buddy_get_name(buddy);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1057 gboolean old_available, available;
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1058
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1059 available = purple_status_is_available(status);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1060 old_available = purple_status_is_available(old_status);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1061
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1062 if (available && !old_available)
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1063 purple_pounce_execute(account, name, PURPLE_POUNCE_AWAY_RETURN);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1064 else if (!available && old_available)
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1065 purple_pounce_execute(account, name, PURPLE_POUNCE_AWAY);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1066 }
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1067
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1068 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1069 buddy_idle_changed_cb(PurpleBuddy *buddy, gboolean old_idle, gboolean idle)
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1070 {
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1071 PurpleAccount *account = purple_buddy_get_account(buddy);
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1072 const gchar *name = purple_buddy_get_name(buddy);
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1073
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1074 if (idle && !old_idle)
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1075 purple_pounce_execute(account, name, PURPLE_POUNCE_IDLE);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1076 else if (!idle && old_idle)
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 21908
diff changeset
1077 purple_pounce_execute(account, name, PURPLE_POUNCE_IDLE_RETURN);
11935
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1078 }
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1079
1d95c7294577 [gaim-migrate @ 14226]
Etan Reisner <deryni@pidgin.im>
parents: 11710
diff changeset
1080 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1081 buddy_typing_cb(PurpleAccount *account, const char *name, void *data)
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1082 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1083 PurpleConversation *conv;
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1084
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1085 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account);
11706
e45dd5c7b259 [gaim-migrate @ 13997]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
1086 if (conv != NULL)
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1087 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1088 PurpleTypingState state;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1089 PurplePounceEvent event;
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1090
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1091 state = purple_conv_im_get_typing_state(PURPLE_CONV_IM(conv));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1092 if (state == PURPLE_TYPED)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1093 event = PURPLE_POUNCE_TYPED;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1094 else if (state == PURPLE_NOT_TYPING)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1095 event = PURPLE_POUNCE_TYPING_STOPPED;
13844
835b8f7b3d1d [gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents: 13229
diff changeset
1096 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1097 event = PURPLE_POUNCE_TYPING;
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1098
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1099 purple_pounce_execute(account, name, event);
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1100 }
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1101 }
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1102
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
1103 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1104 received_message_cb(PurpleAccount *account, const char *name, void *data)
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
1105 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1106 purple_pounce_execute(account, name, PURPLE_POUNCE_MESSAGE_RECEIVED);
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
1107 }
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
1108
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1109 void *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1110 purple_pounces_get_handle(void)
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1111 {
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1112 static int pounce_handle;
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1113
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1114 return &pounce_handle;
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1115 }
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1116
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1117 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1118 purple_pounces_init(void)
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1119 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1120 void *handle = purple_pounces_get_handle();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1121 void *blist_handle = purple_blist_get_handle();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1122 void *conv_handle = purple_conversations_get_handle();
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1123
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1124 pounce_handlers = g_hash_table_new_full(g_str_hash, g_str_equal,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1125 g_free, free_pounce_handler);
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1126
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1127 purple_signal_connect(blist_handle, "buddy-idle-changed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1128 handle, PURPLE_CALLBACK(buddy_idle_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1129 purple_signal_connect(blist_handle, "buddy-status-changed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1130 handle, PURPLE_CALLBACK(buddy_status_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1131 purple_signal_connect(blist_handle, "buddy-signed-on",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1132 handle, PURPLE_CALLBACK(buddy_state_cb),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1133 GINT_TO_POINTER(PURPLE_POUNCE_SIGNON));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1134 purple_signal_connect(blist_handle, "buddy-signed-off",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1135 handle, PURPLE_CALLBACK(buddy_state_cb),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1136 GINT_TO_POINTER(PURPLE_POUNCE_SIGNOFF));
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1137
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1138 purple_signal_connect(conv_handle, "buddy-typing",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1139 handle, PURPLE_CALLBACK(buddy_typing_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1140 purple_signal_connect(conv_handle, "buddy-typed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1141 handle, PURPLE_CALLBACK(buddy_typing_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1142 purple_signal_connect(conv_handle, "buddy-typing-stopped",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1143 handle, PURPLE_CALLBACK(buddy_typing_cb), NULL);
12694
526fc1678184 [gaim-migrate @ 15037]
Lucio Maciel
parents: 12002
diff changeset
1144
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1145 purple_signal_connect(conv_handle, "received-im-msg",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1146 handle, PURPLE_CALLBACK(received_message_cb), NULL);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1147 }
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1148
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1149 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1150 purple_pounces_uninit()
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1151 {
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
1152 if (save_timer != 0)
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
1153 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1154 purple_timeout_remove(save_timer);
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
1155 save_timer = 0;
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10423
diff changeset
1156 sync_pounces();
8235
00045afab151 [gaim-migrate @ 8958]
Gary Kramlich <grim@pidgin.im>
parents: 8046
diff changeset
1157 }
00045afab151 [gaim-migrate @ 8958]
Gary Kramlich <grim@pidgin.im>
parents: 8046
diff changeset
1158
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15482
diff changeset
1159 purple_signals_disconnect_by_handle(purple_pounces_get_handle());
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6719
diff changeset
1160 }

mercurial