Mercurial > pidgin.yaz
comparison libpurple/blist.c @ 15823:32c366eeeb99
sed -ie 's/gaim/purple/g'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 19 Mar 2007 07:01:17 +0000 |
parents | 5ec709327dc6 |
children | c9b4ff420140 4999bbc52881 |
comparison
equal
deleted
inserted
replaced
15822:84b0f9b23ede | 15823:32c366eeeb99 |
---|---|
1 /* | 1 /* |
2 * gaim | 2 * purple |
3 * | 3 * |
4 * Gaim is the legal property of its developers, whose names are too numerous | 4 * Purple is the legal property of its developers, whose names are too numerous |
5 * to list here. Please refer to the COPYRIGHT file distributed with this | 5 * to list here. Please refer to the COPYRIGHT file distributed with this |
6 * source distribution. | 6 * source distribution. |
7 * | 7 * |
8 * This program is free software; you can redistribute it and/or modify | 8 * This program is free software; you can redistribute it and/or modify |
9 * it under the terms of the GNU General Public License as published by | 9 * it under the terms of the GNU General Public License as published by |
35 #include "value.h" | 35 #include "value.h" |
36 #include "xmlnode.h" | 36 #include "xmlnode.h" |
37 | 37 |
38 #define PATHSIZE 1024 | 38 #define PATHSIZE 1024 |
39 | 39 |
40 static GaimBlistUiOps *blist_ui_ops = NULL; | 40 static PurpleBlistUiOps *blist_ui_ops = NULL; |
41 | 41 |
42 static GaimBuddyList *gaimbuddylist = NULL; | 42 static PurpleBuddyList *purplebuddylist = NULL; |
43 static guint save_timer = 0; | 43 static guint save_timer = 0; |
44 static gboolean blist_loaded = FALSE; | 44 static gboolean blist_loaded = FALSE; |
45 | 45 |
46 | 46 |
47 /********************************************************************* | 47 /********************************************************************* |
48 * Private utility functions * | 48 * Private utility functions * |
49 *********************************************************************/ | 49 *********************************************************************/ |
50 | 50 |
51 static GaimBlistNode *gaim_blist_get_last_sibling(GaimBlistNode *node) | 51 static PurpleBlistNode *purple_blist_get_last_sibling(PurpleBlistNode *node) |
52 { | 52 { |
53 GaimBlistNode *n = node; | 53 PurpleBlistNode *n = node; |
54 if (!n) | 54 if (!n) |
55 return NULL; | 55 return NULL; |
56 while (n->next) | 56 while (n->next) |
57 n = n->next; | 57 n = n->next; |
58 return n; | 58 return n; |
59 } | 59 } |
60 | 60 |
61 static GaimBlistNode *gaim_blist_get_last_child(GaimBlistNode *node) | 61 static PurpleBlistNode *purple_blist_get_last_child(PurpleBlistNode *node) |
62 { | 62 { |
63 if (!node) | 63 if (!node) |
64 return NULL; | 64 return NULL; |
65 return gaim_blist_get_last_sibling(node->child); | 65 return purple_blist_get_last_sibling(node->child); |
66 } | 66 } |
67 | 67 |
68 struct _list_account_buddies { | 68 struct _list_account_buddies { |
69 GSList *list; | 69 GSList *list; |
70 GaimAccount *account; | 70 PurpleAccount *account; |
71 }; | 71 }; |
72 | 72 |
73 struct _gaim_hbuddy { | 73 struct _purple_hbuddy { |
74 char *name; | 74 char *name; |
75 GaimAccount *account; | 75 PurpleAccount *account; |
76 GaimBlistNode *group; | 76 PurpleBlistNode *group; |
77 }; | 77 }; |
78 | 78 |
79 static guint _gaim_blist_hbuddy_hash(struct _gaim_hbuddy *hb) | 79 static guint _purple_blist_hbuddy_hash(struct _purple_hbuddy *hb) |
80 { | 80 { |
81 return g_str_hash(hb->name); | 81 return g_str_hash(hb->name); |
82 } | 82 } |
83 | 83 |
84 static guint _gaim_blist_hbuddy_equal(struct _gaim_hbuddy *hb1, struct _gaim_hbuddy *hb2) | 84 static guint _purple_blist_hbuddy_equal(struct _purple_hbuddy *hb1, struct _purple_hbuddy *hb2) |
85 { | 85 { |
86 return ((!strcmp(hb1->name, hb2->name)) && hb1->account == hb2->account && hb1->group == hb2->group); | 86 return ((!strcmp(hb1->name, hb2->name)) && hb1->account == hb2->account && hb1->group == hb2->group); |
87 } | 87 } |
88 | 88 |
89 static void _gaim_blist_hbuddy_free_key(struct _gaim_hbuddy *hb) | 89 static void _purple_blist_hbuddy_free_key(struct _purple_hbuddy *hb) |
90 { | 90 { |
91 g_free(hb->name); | 91 g_free(hb->name); |
92 g_free(hb); | 92 g_free(hb); |
93 } | 93 } |
94 | 94 |
99 | 99 |
100 static void | 100 static void |
101 value_to_xmlnode(gpointer key, gpointer hvalue, gpointer user_data) | 101 value_to_xmlnode(gpointer key, gpointer hvalue, gpointer user_data) |
102 { | 102 { |
103 const char *name; | 103 const char *name; |
104 GaimValue *value; | 104 PurpleValue *value; |
105 xmlnode *node, *child; | 105 xmlnode *node, *child; |
106 char buf[20]; | 106 char buf[20]; |
107 | 107 |
108 name = (const char *)key; | 108 name = (const char *)key; |
109 value = (GaimValue *)hvalue; | 109 value = (PurpleValue *)hvalue; |
110 node = (xmlnode *)user_data; | 110 node = (xmlnode *)user_data; |
111 | 111 |
112 g_return_if_fail(value != NULL); | 112 g_return_if_fail(value != NULL); |
113 | 113 |
114 child = xmlnode_new_child(node, "setting"); | 114 child = xmlnode_new_child(node, "setting"); |
115 xmlnode_set_attrib(child, "name", name); | 115 xmlnode_set_attrib(child, "name", name); |
116 | 116 |
117 if (gaim_value_get_type(value) == GAIM_TYPE_INT) { | 117 if (purple_value_get_type(value) == PURPLE_TYPE_INT) { |
118 xmlnode_set_attrib(child, "type", "int"); | 118 xmlnode_set_attrib(child, "type", "int"); |
119 snprintf(buf, sizeof(buf), "%d", gaim_value_get_int(value)); | 119 snprintf(buf, sizeof(buf), "%d", purple_value_get_int(value)); |
120 xmlnode_insert_data(child, buf, -1); | 120 xmlnode_insert_data(child, buf, -1); |
121 } | 121 } |
122 else if (gaim_value_get_type(value) == GAIM_TYPE_STRING) { | 122 else if (purple_value_get_type(value) == PURPLE_TYPE_STRING) { |
123 xmlnode_set_attrib(child, "type", "string"); | 123 xmlnode_set_attrib(child, "type", "string"); |
124 xmlnode_insert_data(child, gaim_value_get_string(value), -1); | 124 xmlnode_insert_data(child, purple_value_get_string(value), -1); |
125 } | 125 } |
126 else if (gaim_value_get_type(value) == GAIM_TYPE_BOOLEAN) { | 126 else if (purple_value_get_type(value) == PURPLE_TYPE_BOOLEAN) { |
127 xmlnode_set_attrib(child, "type", "bool"); | 127 xmlnode_set_attrib(child, "type", "bool"); |
128 snprintf(buf, sizeof(buf), "%d", gaim_value_get_boolean(value)); | 128 snprintf(buf, sizeof(buf), "%d", purple_value_get_boolean(value)); |
129 xmlnode_insert_data(child, buf, -1); | 129 xmlnode_insert_data(child, buf, -1); |
130 } | 130 } |
131 } | 131 } |
132 | 132 |
133 static void | 133 static void |
147 xmlnode_set_attrib(child, "name", name); | 147 xmlnode_set_attrib(child, "name", name); |
148 xmlnode_insert_data(child, data, -1); | 148 xmlnode_insert_data(child, data, -1); |
149 } | 149 } |
150 | 150 |
151 static xmlnode * | 151 static xmlnode * |
152 buddy_to_xmlnode(GaimBlistNode *bnode) | 152 buddy_to_xmlnode(PurpleBlistNode *bnode) |
153 { | 153 { |
154 xmlnode *node, *child; | 154 xmlnode *node, *child; |
155 GaimBuddy *buddy; | 155 PurpleBuddy *buddy; |
156 | 156 |
157 buddy = (GaimBuddy *)bnode; | 157 buddy = (PurpleBuddy *)bnode; |
158 | 158 |
159 node = xmlnode_new("buddy"); | 159 node = xmlnode_new("buddy"); |
160 xmlnode_set_attrib(node, "account", gaim_account_get_username(buddy->account)); | 160 xmlnode_set_attrib(node, "account", purple_account_get_username(buddy->account)); |
161 xmlnode_set_attrib(node, "proto", gaim_account_get_protocol_id(buddy->account)); | 161 xmlnode_set_attrib(node, "proto", purple_account_get_protocol_id(buddy->account)); |
162 | 162 |
163 child = xmlnode_new_child(node, "name"); | 163 child = xmlnode_new_child(node, "name"); |
164 xmlnode_insert_data(child, buddy->name, -1); | 164 xmlnode_insert_data(child, buddy->name, -1); |
165 | 165 |
166 if (buddy->alias != NULL) | 166 if (buddy->alias != NULL) |
174 | 174 |
175 return node; | 175 return node; |
176 } | 176 } |
177 | 177 |
178 static xmlnode * | 178 static xmlnode * |
179 contact_to_xmlnode(GaimBlistNode *cnode) | 179 contact_to_xmlnode(PurpleBlistNode *cnode) |
180 { | 180 { |
181 xmlnode *node, *child; | 181 xmlnode *node, *child; |
182 GaimContact *contact; | 182 PurpleContact *contact; |
183 GaimBlistNode *bnode; | 183 PurpleBlistNode *bnode; |
184 | 184 |
185 contact = (GaimContact *)cnode; | 185 contact = (PurpleContact *)cnode; |
186 | 186 |
187 node = xmlnode_new("contact"); | 187 node = xmlnode_new("contact"); |
188 | 188 |
189 if (contact->alias != NULL) | 189 if (contact->alias != NULL) |
190 { | 190 { |
192 } | 192 } |
193 | 193 |
194 /* Write buddies */ | 194 /* Write buddies */ |
195 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next) | 195 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next) |
196 { | 196 { |
197 if (!GAIM_BLIST_NODE_SHOULD_SAVE(bnode)) | 197 if (!PURPLE_BLIST_NODE_SHOULD_SAVE(bnode)) |
198 continue; | 198 continue; |
199 if (GAIM_BLIST_NODE_IS_BUDDY(bnode)) | 199 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) |
200 { | 200 { |
201 child = buddy_to_xmlnode(bnode); | 201 child = buddy_to_xmlnode(bnode); |
202 xmlnode_insert_child(node, child); | 202 xmlnode_insert_child(node, child); |
203 } | 203 } |
204 } | 204 } |
208 | 208 |
209 return node; | 209 return node; |
210 } | 210 } |
211 | 211 |
212 static xmlnode * | 212 static xmlnode * |
213 chat_to_xmlnode(GaimBlistNode *cnode) | 213 chat_to_xmlnode(PurpleBlistNode *cnode) |
214 { | 214 { |
215 xmlnode *node, *child; | 215 xmlnode *node, *child; |
216 GaimChat *chat; | 216 PurpleChat *chat; |
217 | 217 |
218 chat = (GaimChat *)cnode; | 218 chat = (PurpleChat *)cnode; |
219 | 219 |
220 node = xmlnode_new("chat"); | 220 node = xmlnode_new("chat"); |
221 xmlnode_set_attrib(node, "proto", gaim_account_get_protocol_id(chat->account)); | 221 xmlnode_set_attrib(node, "proto", purple_account_get_protocol_id(chat->account)); |
222 xmlnode_set_attrib(node, "account", gaim_account_get_username(chat->account)); | 222 xmlnode_set_attrib(node, "account", purple_account_get_username(chat->account)); |
223 | 223 |
224 if (chat->alias != NULL) | 224 if (chat->alias != NULL) |
225 { | 225 { |
226 child = xmlnode_new_child(node, "alias"); | 226 child = xmlnode_new_child(node, "alias"); |
227 xmlnode_insert_data(child, chat->alias, -1); | 227 xmlnode_insert_data(child, chat->alias, -1); |
235 | 235 |
236 return node; | 236 return node; |
237 } | 237 } |
238 | 238 |
239 static xmlnode * | 239 static xmlnode * |
240 group_to_xmlnode(GaimBlistNode *gnode) | 240 group_to_xmlnode(PurpleBlistNode *gnode) |
241 { | 241 { |
242 xmlnode *node, *child; | 242 xmlnode *node, *child; |
243 GaimGroup *group; | 243 PurpleGroup *group; |
244 GaimBlistNode *cnode; | 244 PurpleBlistNode *cnode; |
245 | 245 |
246 group = (GaimGroup *)gnode; | 246 group = (PurpleGroup *)gnode; |
247 | 247 |
248 node = xmlnode_new("group"); | 248 node = xmlnode_new("group"); |
249 xmlnode_set_attrib(node, "name", group->name); | 249 xmlnode_set_attrib(node, "name", group->name); |
250 | 250 |
251 /* Write settings */ | 251 /* Write settings */ |
252 g_hash_table_foreach(group->node.settings, value_to_xmlnode, node); | 252 g_hash_table_foreach(group->node.settings, value_to_xmlnode, node); |
253 | 253 |
254 /* Write contacts and chats */ | 254 /* Write contacts and chats */ |
255 for (cnode = gnode->child; cnode != NULL; cnode = cnode->next) | 255 for (cnode = gnode->child; cnode != NULL; cnode = cnode->next) |
256 { | 256 { |
257 if (!GAIM_BLIST_NODE_SHOULD_SAVE(cnode)) | 257 if (!PURPLE_BLIST_NODE_SHOULD_SAVE(cnode)) |
258 continue; | 258 continue; |
259 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) | 259 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) |
260 { | 260 { |
261 child = contact_to_xmlnode(cnode); | 261 child = contact_to_xmlnode(cnode); |
262 xmlnode_insert_child(node, child); | 262 xmlnode_insert_child(node, child); |
263 } | 263 } |
264 else if (GAIM_BLIST_NODE_IS_CHAT(cnode)) | 264 else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) |
265 { | 265 { |
266 child = chat_to_xmlnode(cnode); | 266 child = chat_to_xmlnode(cnode); |
267 xmlnode_insert_child(node, child); | 267 xmlnode_insert_child(node, child); |
268 } | 268 } |
269 } | 269 } |
270 | 270 |
271 return node; | 271 return node; |
272 } | 272 } |
273 | 273 |
274 static xmlnode * | 274 static xmlnode * |
275 accountprivacy_to_xmlnode(GaimAccount *account) | 275 accountprivacy_to_xmlnode(PurpleAccount *account) |
276 { | 276 { |
277 xmlnode *node, *child; | 277 xmlnode *node, *child; |
278 GSList *cur; | 278 GSList *cur; |
279 char buf[10]; | 279 char buf[10]; |
280 | 280 |
281 node = xmlnode_new("account"); | 281 node = xmlnode_new("account"); |
282 xmlnode_set_attrib(node, "proto", gaim_account_get_protocol_id(account)); | 282 xmlnode_set_attrib(node, "proto", purple_account_get_protocol_id(account)); |
283 xmlnode_set_attrib(node, "name", gaim_account_get_username(account)); | 283 xmlnode_set_attrib(node, "name", purple_account_get_username(account)); |
284 snprintf(buf, sizeof(buf), "%d", account->perm_deny); | 284 snprintf(buf, sizeof(buf), "%d", account->perm_deny); |
285 xmlnode_set_attrib(node, "mode", buf); | 285 xmlnode_set_attrib(node, "mode", buf); |
286 | 286 |
287 for (cur = account->permit; cur; cur = cur->next) | 287 for (cur = account->permit; cur; cur = cur->next) |
288 { | 288 { |
301 | 301 |
302 static xmlnode * | 302 static xmlnode * |
303 blist_to_xmlnode() | 303 blist_to_xmlnode() |
304 { | 304 { |
305 xmlnode *node, *child, *grandchild; | 305 xmlnode *node, *child, *grandchild; |
306 GaimBlistNode *gnode; | 306 PurpleBlistNode *gnode; |
307 GList *cur; | 307 GList *cur; |
308 | 308 |
309 node = xmlnode_new("gaim"); | 309 node = xmlnode_new("purple"); |
310 xmlnode_set_attrib(node, "version", "1.0"); | 310 xmlnode_set_attrib(node, "version", "1.0"); |
311 | 311 |
312 /* Write groups */ | 312 /* Write groups */ |
313 child = xmlnode_new_child(node, "blist"); | 313 child = xmlnode_new_child(node, "blist"); |
314 for (gnode = gaimbuddylist->root; gnode != NULL; gnode = gnode->next) | 314 for (gnode = purplebuddylist->root; gnode != NULL; gnode = gnode->next) |
315 { | 315 { |
316 if (!GAIM_BLIST_NODE_SHOULD_SAVE(gnode)) | 316 if (!PURPLE_BLIST_NODE_SHOULD_SAVE(gnode)) |
317 continue; | 317 continue; |
318 if (GAIM_BLIST_NODE_IS_GROUP(gnode)) | 318 if (PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
319 { | 319 { |
320 grandchild = group_to_xmlnode(gnode); | 320 grandchild = group_to_xmlnode(gnode); |
321 xmlnode_insert_child(child, grandchild); | 321 xmlnode_insert_child(child, grandchild); |
322 } | 322 } |
323 } | 323 } |
324 | 324 |
325 /* Write privacy settings */ | 325 /* Write privacy settings */ |
326 child = xmlnode_new_child(node, "privacy"); | 326 child = xmlnode_new_child(node, "privacy"); |
327 for (cur = gaim_accounts_get_all(); cur != NULL; cur = cur->next) | 327 for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next) |
328 { | 328 { |
329 grandchild = accountprivacy_to_xmlnode(cur->data); | 329 grandchild = accountprivacy_to_xmlnode(cur->data); |
330 xmlnode_insert_child(child, grandchild); | 330 xmlnode_insert_child(child, grandchild); |
331 } | 331 } |
332 | 332 |
333 return node; | 333 return node; |
334 } | 334 } |
335 | 335 |
336 static void | 336 static void |
337 gaim_blist_sync() | 337 purple_blist_sync() |
338 { | 338 { |
339 xmlnode *node; | 339 xmlnode *node; |
340 char *data; | 340 char *data; |
341 | 341 |
342 if (!blist_loaded) | 342 if (!blist_loaded) |
343 { | 343 { |
344 gaim_debug_error("blist", "Attempted to save buddy list before it " | 344 purple_debug_error("blist", "Attempted to save buddy list before it " |
345 "was read!\n"); | 345 "was read!\n"); |
346 return; | 346 return; |
347 } | 347 } |
348 | 348 |
349 node = blist_to_xmlnode(); | 349 node = blist_to_xmlnode(); |
350 data = xmlnode_to_formatted_str(node, NULL); | 350 data = xmlnode_to_formatted_str(node, NULL); |
351 gaim_util_write_data_to_file("blist.xml", data, -1); | 351 purple_util_write_data_to_file("blist.xml", data, -1); |
352 g_free(data); | 352 g_free(data); |
353 xmlnode_free(node); | 353 xmlnode_free(node); |
354 } | 354 } |
355 | 355 |
356 static gboolean | 356 static gboolean |
357 save_cb(gpointer data) | 357 save_cb(gpointer data) |
358 { | 358 { |
359 gaim_blist_sync(); | 359 purple_blist_sync(); |
360 save_timer = 0; | 360 save_timer = 0; |
361 return FALSE; | 361 return FALSE; |
362 } | 362 } |
363 | 363 |
364 void | 364 void |
365 gaim_blist_schedule_save() | 365 purple_blist_schedule_save() |
366 { | 366 { |
367 if (save_timer == 0) | 367 if (save_timer == 0) |
368 save_timer = gaim_timeout_add(5000, save_cb, NULL); | 368 save_timer = purple_timeout_add(5000, save_cb, NULL); |
369 } | 369 } |
370 | 370 |
371 | 371 |
372 /********************************************************************* | 372 /********************************************************************* |
373 * Reading from disk * | 373 * Reading from disk * |
374 *********************************************************************/ | 374 *********************************************************************/ |
375 | 375 |
376 static void | 376 static void |
377 parse_setting(GaimBlistNode *node, xmlnode *setting) | 377 parse_setting(PurpleBlistNode *node, xmlnode *setting) |
378 { | 378 { |
379 const char *name = xmlnode_get_attrib(setting, "name"); | 379 const char *name = xmlnode_get_attrib(setting, "name"); |
380 const char *type = xmlnode_get_attrib(setting, "type"); | 380 const char *type = xmlnode_get_attrib(setting, "type"); |
381 char *value = xmlnode_get_data(setting); | 381 char *value = xmlnode_get_data(setting); |
382 | 382 |
383 if (!value) | 383 if (!value) |
384 return; | 384 return; |
385 | 385 |
386 if (!type || !strcmp(type, "string")) | 386 if (!type || !strcmp(type, "string")) |
387 gaim_blist_node_set_string(node, name, value); | 387 purple_blist_node_set_string(node, name, value); |
388 else if (!strcmp(type, "bool")) | 388 else if (!strcmp(type, "bool")) |
389 gaim_blist_node_set_bool(node, name, atoi(value)); | 389 purple_blist_node_set_bool(node, name, atoi(value)); |
390 else if (!strcmp(type, "int")) | 390 else if (!strcmp(type, "int")) |
391 gaim_blist_node_set_int(node, name, atoi(value)); | 391 purple_blist_node_set_int(node, name, atoi(value)); |
392 | 392 |
393 g_free(value); | 393 g_free(value); |
394 } | 394 } |
395 | 395 |
396 static void | 396 static void |
397 parse_buddy(GaimGroup *group, GaimContact *contact, xmlnode *bnode) | 397 parse_buddy(PurpleGroup *group, PurpleContact *contact, xmlnode *bnode) |
398 { | 398 { |
399 GaimAccount *account; | 399 PurpleAccount *account; |
400 GaimBuddy *buddy; | 400 PurpleBuddy *buddy; |
401 char *name = NULL, *alias = NULL; | 401 char *name = NULL, *alias = NULL; |
402 const char *acct_name, *proto, *protocol; | 402 const char *acct_name, *proto, *protocol; |
403 xmlnode *x; | 403 xmlnode *x; |
404 | 404 |
405 acct_name = xmlnode_get_attrib(bnode, "account"); | 405 acct_name = xmlnode_get_attrib(bnode, "account"); |
406 protocol = xmlnode_get_attrib(bnode, "protocol"); | 406 protocol = xmlnode_get_attrib(bnode, "protocol"); |
407 protocol = _gaim_oscar_convert(acct_name, protocol); /* XXX: Remove */ | 407 protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */ |
408 proto = xmlnode_get_attrib(bnode, "proto"); | 408 proto = xmlnode_get_attrib(bnode, "proto"); |
409 proto = _gaim_oscar_convert(acct_name, proto); /* XXX: Remove */ | 409 proto = _purple_oscar_convert(acct_name, proto); /* XXX: Remove */ |
410 | 410 |
411 if (!acct_name || (!proto && !protocol)) | 411 if (!acct_name || (!proto && !protocol)) |
412 return; | 412 return; |
413 | 413 |
414 account = gaim_accounts_find(acct_name, proto ? proto : protocol); | 414 account = purple_accounts_find(acct_name, proto ? proto : protocol); |
415 | 415 |
416 if (!account) | 416 if (!account) |
417 return; | 417 return; |
418 | 418 |
419 if ((x = xmlnode_get_child(bnode, "name"))) | 419 if ((x = xmlnode_get_child(bnode, "name"))) |
423 return; | 423 return; |
424 | 424 |
425 if ((x = xmlnode_get_child(bnode, "alias"))) | 425 if ((x = xmlnode_get_child(bnode, "alias"))) |
426 alias = xmlnode_get_data(x); | 426 alias = xmlnode_get_data(x); |
427 | 427 |
428 buddy = gaim_buddy_new(account, name, alias); | 428 buddy = purple_buddy_new(account, name, alias); |
429 gaim_blist_add_buddy(buddy, contact, group, | 429 purple_blist_add_buddy(buddy, contact, group, |
430 gaim_blist_get_last_child((GaimBlistNode*)contact)); | 430 purple_blist_get_last_child((PurpleBlistNode*)contact)); |
431 | 431 |
432 for (x = xmlnode_get_child(bnode, "setting"); x; x = xmlnode_get_next_twin(x)) { | 432 for (x = xmlnode_get_child(bnode, "setting"); x; x = xmlnode_get_next_twin(x)) { |
433 parse_setting((GaimBlistNode*)buddy, x); | 433 parse_setting((PurpleBlistNode*)buddy, x); |
434 } | 434 } |
435 | 435 |
436 g_free(name); | 436 g_free(name); |
437 g_free(alias); | 437 g_free(alias); |
438 } | 438 } |
439 | 439 |
440 static void | 440 static void |
441 parse_contact(GaimGroup *group, xmlnode *cnode) | 441 parse_contact(PurpleGroup *group, xmlnode *cnode) |
442 { | 442 { |
443 GaimContact *contact = gaim_contact_new(); | 443 PurpleContact *contact = purple_contact_new(); |
444 xmlnode *x; | 444 xmlnode *x; |
445 const char *alias; | 445 const char *alias; |
446 | 446 |
447 gaim_blist_add_contact(contact, group, | 447 purple_blist_add_contact(contact, group, |
448 gaim_blist_get_last_child((GaimBlistNode*)group)); | 448 purple_blist_get_last_child((PurpleBlistNode*)group)); |
449 | 449 |
450 if ((alias = xmlnode_get_attrib(cnode, "alias"))) { | 450 if ((alias = xmlnode_get_attrib(cnode, "alias"))) { |
451 gaim_contact_set_alias(contact, alias); | 451 purple_contact_set_alias(contact, alias); |
452 } | 452 } |
453 | 453 |
454 for (x = cnode->child; x; x = x->next) { | 454 for (x = cnode->child; x; x = x->next) { |
455 if (x->type != XMLNODE_TYPE_TAG) | 455 if (x->type != XMLNODE_TYPE_TAG) |
456 continue; | 456 continue; |
457 if (!strcmp(x->name, "buddy")) | 457 if (!strcmp(x->name, "buddy")) |
458 parse_buddy(group, contact, x); | 458 parse_buddy(group, contact, x); |
459 else if (!strcmp(x->name, "setting")) | 459 else if (!strcmp(x->name, "setting")) |
460 parse_setting((GaimBlistNode*)contact, x); | 460 parse_setting((PurpleBlistNode*)contact, x); |
461 } | 461 } |
462 | 462 |
463 /* if the contact is empty, don't keep it around. it causes problems */ | 463 /* if the contact is empty, don't keep it around. it causes problems */ |
464 if (!((GaimBlistNode*)contact)->child) | 464 if (!((PurpleBlistNode*)contact)->child) |
465 gaim_blist_remove_contact(contact); | 465 purple_blist_remove_contact(contact); |
466 } | 466 } |
467 | 467 |
468 static void | 468 static void |
469 parse_chat(GaimGroup *group, xmlnode *cnode) | 469 parse_chat(PurpleGroup *group, xmlnode *cnode) |
470 { | 470 { |
471 GaimChat *chat; | 471 PurpleChat *chat; |
472 GaimAccount *account; | 472 PurpleAccount *account; |
473 const char *acct_name, *proto, *protocol; | 473 const char *acct_name, *proto, *protocol; |
474 xmlnode *x; | 474 xmlnode *x; |
475 char *alias = NULL; | 475 char *alias = NULL; |
476 GHashTable *components; | 476 GHashTable *components; |
477 | 477 |
480 proto = xmlnode_get_attrib(cnode, "proto"); | 480 proto = xmlnode_get_attrib(cnode, "proto"); |
481 | 481 |
482 if (!acct_name || (!proto && !protocol)) | 482 if (!acct_name || (!proto && !protocol)) |
483 return; | 483 return; |
484 | 484 |
485 account = gaim_accounts_find(acct_name, proto ? proto : protocol); | 485 account = purple_accounts_find(acct_name, proto ? proto : protocol); |
486 | 486 |
487 if (!account) | 487 if (!account) |
488 return; | 488 return; |
489 | 489 |
490 if ((x = xmlnode_get_child(cnode, "alias"))) | 490 if ((x = xmlnode_get_child(cnode, "alias"))) |
499 name = xmlnode_get_attrib(x, "name"); | 499 name = xmlnode_get_attrib(x, "name"); |
500 value = xmlnode_get_data(x); | 500 value = xmlnode_get_data(x); |
501 g_hash_table_replace(components, g_strdup(name), value); | 501 g_hash_table_replace(components, g_strdup(name), value); |
502 } | 502 } |
503 | 503 |
504 chat = gaim_chat_new(account, alias, components); | 504 chat = purple_chat_new(account, alias, components); |
505 gaim_blist_add_chat(chat, group, | 505 purple_blist_add_chat(chat, group, |
506 gaim_blist_get_last_child((GaimBlistNode*)group)); | 506 purple_blist_get_last_child((PurpleBlistNode*)group)); |
507 | 507 |
508 for (x = xmlnode_get_child(cnode, "setting"); x; x = xmlnode_get_next_twin(x)) { | 508 for (x = xmlnode_get_child(cnode, "setting"); x; x = xmlnode_get_next_twin(x)) { |
509 parse_setting((GaimBlistNode*)chat, x); | 509 parse_setting((PurpleBlistNode*)chat, x); |
510 } | 510 } |
511 | 511 |
512 g_free(alias); | 512 g_free(alias); |
513 } | 513 } |
514 | 514 |
515 static void | 515 static void |
516 parse_group(xmlnode *groupnode) | 516 parse_group(xmlnode *groupnode) |
517 { | 517 { |
518 const char *name = xmlnode_get_attrib(groupnode, "name"); | 518 const char *name = xmlnode_get_attrib(groupnode, "name"); |
519 GaimGroup *group; | 519 PurpleGroup *group; |
520 xmlnode *cnode; | 520 xmlnode *cnode; |
521 | 521 |
522 if (!name) | 522 if (!name) |
523 name = _("Buddies"); | 523 name = _("Buddies"); |
524 | 524 |
525 group = gaim_group_new(name); | 525 group = purple_group_new(name); |
526 gaim_blist_add_group(group, | 526 purple_blist_add_group(group, |
527 gaim_blist_get_last_sibling(gaimbuddylist->root)); | 527 purple_blist_get_last_sibling(purplebuddylist->root)); |
528 | 528 |
529 for (cnode = groupnode->child; cnode; cnode = cnode->next) { | 529 for (cnode = groupnode->child; cnode; cnode = cnode->next) { |
530 if (cnode->type != XMLNODE_TYPE_TAG) | 530 if (cnode->type != XMLNODE_TYPE_TAG) |
531 continue; | 531 continue; |
532 if (!strcmp(cnode->name, "setting")) | 532 if (!strcmp(cnode->name, "setting")) |
533 parse_setting((GaimBlistNode*)group, cnode); | 533 parse_setting((PurpleBlistNode*)group, cnode); |
534 else if (!strcmp(cnode->name, "contact") || | 534 else if (!strcmp(cnode->name, "contact") || |
535 !strcmp(cnode->name, "person")) | 535 !strcmp(cnode->name, "person")) |
536 parse_contact(group, cnode); | 536 parse_contact(group, cnode); |
537 else if (!strcmp(cnode->name, "chat")) | 537 else if (!strcmp(cnode->name, "chat")) |
538 parse_chat(group, cnode); | 538 parse_chat(group, cnode); |
539 } | 539 } |
540 } | 540 } |
541 | 541 |
542 /* TODO: Make static and rename to load_blist */ | 542 /* TODO: Make static and rename to load_blist */ |
543 void | 543 void |
544 gaim_blist_load() | 544 purple_blist_load() |
545 { | 545 { |
546 xmlnode *gaim, *blist, *privacy; | 546 xmlnode *purple, *blist, *privacy; |
547 | 547 |
548 blist_loaded = TRUE; | 548 blist_loaded = TRUE; |
549 | 549 |
550 gaim = gaim_util_read_xml_from_file("blist.xml", _("buddy list")); | 550 purple = purple_util_read_xml_from_file("blist.xml", _("buddy list")); |
551 | 551 |
552 if (gaim == NULL) | 552 if (purple == NULL) |
553 return; | 553 return; |
554 | 554 |
555 blist = xmlnode_get_child(gaim, "blist"); | 555 blist = xmlnode_get_child(purple, "blist"); |
556 if (blist) { | 556 if (blist) { |
557 xmlnode *groupnode; | 557 xmlnode *groupnode; |
558 for (groupnode = xmlnode_get_child(blist, "group"); groupnode != NULL; | 558 for (groupnode = xmlnode_get_child(blist, "group"); groupnode != NULL; |
559 groupnode = xmlnode_get_next_twin(groupnode)) { | 559 groupnode = xmlnode_get_next_twin(groupnode)) { |
560 parse_group(groupnode); | 560 parse_group(groupnode); |
561 } | 561 } |
562 } | 562 } |
563 | 563 |
564 privacy = xmlnode_get_child(gaim, "privacy"); | 564 privacy = xmlnode_get_child(purple, "privacy"); |
565 if (privacy) { | 565 if (privacy) { |
566 xmlnode *anode; | 566 xmlnode *anode; |
567 for (anode = privacy->child; anode; anode = anode->next) { | 567 for (anode = privacy->child; anode; anode = anode->next) { |
568 xmlnode *x; | 568 xmlnode *x; |
569 GaimAccount *account; | 569 PurpleAccount *account; |
570 int imode; | 570 int imode; |
571 const char *acct_name, *proto, *mode, *protocol; | 571 const char *acct_name, *proto, *mode, *protocol; |
572 | 572 |
573 acct_name = xmlnode_get_attrib(anode, "name"); | 573 acct_name = xmlnode_get_attrib(anode, "name"); |
574 protocol = xmlnode_get_attrib(anode, "protocol"); | 574 protocol = xmlnode_get_attrib(anode, "protocol"); |
576 mode = xmlnode_get_attrib(anode, "mode"); | 576 mode = xmlnode_get_attrib(anode, "mode"); |
577 | 577 |
578 if (!acct_name || (!proto && !protocol) || !mode) | 578 if (!acct_name || (!proto && !protocol) || !mode) |
579 continue; | 579 continue; |
580 | 580 |
581 account = gaim_accounts_find(acct_name, proto ? proto : protocol); | 581 account = purple_accounts_find(acct_name, proto ? proto : protocol); |
582 | 582 |
583 if (!account) | 583 if (!account) |
584 continue; | 584 continue; |
585 | 585 |
586 imode = atoi(mode); | 586 imode = atoi(mode); |
587 account->perm_deny = (imode != 0 ? imode : GAIM_PRIVACY_ALLOW_ALL); | 587 account->perm_deny = (imode != 0 ? imode : PURPLE_PRIVACY_ALLOW_ALL); |
588 | 588 |
589 for (x = anode->child; x; x = x->next) { | 589 for (x = anode->child; x; x = x->next) { |
590 char *name; | 590 char *name; |
591 if (x->type != XMLNODE_TYPE_TAG) | 591 if (x->type != XMLNODE_TYPE_TAG) |
592 continue; | 592 continue; |
593 | 593 |
594 if (!strcmp(x->name, "permit")) { | 594 if (!strcmp(x->name, "permit")) { |
595 name = xmlnode_get_data(x); | 595 name = xmlnode_get_data(x); |
596 gaim_privacy_permit_add(account, name, TRUE); | 596 purple_privacy_permit_add(account, name, TRUE); |
597 g_free(name); | 597 g_free(name); |
598 } else if (!strcmp(x->name, "block")) { | 598 } else if (!strcmp(x->name, "block")) { |
599 name = xmlnode_get_data(x); | 599 name = xmlnode_get_data(x); |
600 gaim_privacy_deny_add(account, name, TRUE); | 600 purple_privacy_deny_add(account, name, TRUE); |
601 g_free(name); | 601 g_free(name); |
602 } | 602 } |
603 } | 603 } |
604 } | 604 } |
605 } | 605 } |
606 | 606 |
607 xmlnode_free(gaim); | 607 xmlnode_free(purple); |
608 } | 608 } |
609 | 609 |
610 | 610 |
611 /********************************************************************* | 611 /********************************************************************* |
612 * Stuff * | 612 * Stuff * |
613 *********************************************************************/ | 613 *********************************************************************/ |
614 | 614 |
615 static void | 615 static void |
616 gaim_contact_compute_priority_buddy(GaimContact *contact) | 616 purple_contact_compute_priority_buddy(PurpleContact *contact) |
617 { | 617 { |
618 GaimBlistNode *bnode; | 618 PurpleBlistNode *bnode; |
619 GaimBuddy *new_priority = NULL; | 619 PurpleBuddy *new_priority = NULL; |
620 | 620 |
621 g_return_if_fail(contact != NULL); | 621 g_return_if_fail(contact != NULL); |
622 | 622 |
623 contact->priority = NULL; | 623 contact->priority = NULL; |
624 for (bnode = ((GaimBlistNode*)contact)->child; | 624 for (bnode = ((PurpleBlistNode*)contact)->child; |
625 bnode != NULL; | 625 bnode != NULL; |
626 bnode = bnode->next) | 626 bnode = bnode->next) |
627 { | 627 { |
628 GaimBuddy *buddy; | 628 PurpleBuddy *buddy; |
629 | 629 |
630 if (!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | 630 if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) |
631 continue; | 631 continue; |
632 | 632 |
633 buddy = (GaimBuddy*)bnode; | 633 buddy = (PurpleBuddy*)bnode; |
634 | 634 |
635 if (!gaim_account_is_connected(buddy->account)) | 635 if (!purple_account_is_connected(buddy->account)) |
636 continue; | 636 continue; |
637 if (new_priority == NULL) | 637 if (new_priority == NULL) |
638 new_priority = buddy; | 638 new_priority = buddy; |
639 else | 639 else |
640 { | 640 { |
641 int cmp; | 641 int cmp; |
642 | 642 |
643 cmp = gaim_presence_compare(gaim_buddy_get_presence(new_priority), | 643 cmp = purple_presence_compare(purple_buddy_get_presence(new_priority), |
644 gaim_buddy_get_presence(buddy)); | 644 purple_buddy_get_presence(buddy)); |
645 | 645 |
646 if (cmp > 0 || (cmp == 0 && | 646 if (cmp > 0 || (cmp == 0 && |
647 gaim_prefs_get_bool("/core/contact/last_match"))) | 647 purple_prefs_get_bool("/core/contact/last_match"))) |
648 { | 648 { |
649 new_priority = buddy; | 649 new_priority = buddy; |
650 } | 650 } |
651 } | 651 } |
652 } | 652 } |
658 | 658 |
659 /***************************************************************************** | 659 /***************************************************************************** |
660 * Public API functions * | 660 * Public API functions * |
661 *****************************************************************************/ | 661 *****************************************************************************/ |
662 | 662 |
663 GaimBuddyList *gaim_blist_new() | 663 PurpleBuddyList *purple_blist_new() |
664 { | 664 { |
665 GaimBlistUiOps *ui_ops; | 665 PurpleBlistUiOps *ui_ops; |
666 GaimBuddyList *gbl = g_new0(GaimBuddyList, 1); | 666 PurpleBuddyList *gbl = g_new0(PurpleBuddyList, 1); |
667 GAIM_DBUS_REGISTER_POINTER(gbl, GaimBuddyList); | 667 PURPLE_DBUS_REGISTER_POINTER(gbl, PurpleBuddyList); |
668 | 668 |
669 ui_ops = gaim_blist_get_ui_ops(); | 669 ui_ops = purple_blist_get_ui_ops(); |
670 | 670 |
671 gbl->buddies = g_hash_table_new_full((GHashFunc)_gaim_blist_hbuddy_hash, | 671 gbl->buddies = g_hash_table_new_full((GHashFunc)_purple_blist_hbuddy_hash, |
672 (GEqualFunc)_gaim_blist_hbuddy_equal, | 672 (GEqualFunc)_purple_blist_hbuddy_equal, |
673 (GDestroyNotify)_gaim_blist_hbuddy_free_key, NULL); | 673 (GDestroyNotify)_purple_blist_hbuddy_free_key, NULL); |
674 | 674 |
675 if (ui_ops != NULL && ui_ops->new_list != NULL) | 675 if (ui_ops != NULL && ui_ops->new_list != NULL) |
676 ui_ops->new_list(gbl); | 676 ui_ops->new_list(gbl); |
677 | 677 |
678 return gbl; | 678 return gbl; |
679 } | 679 } |
680 | 680 |
681 void | 681 void |
682 gaim_set_blist(GaimBuddyList *list) | 682 purple_set_blist(PurpleBuddyList *list) |
683 { | 683 { |
684 gaimbuddylist = list; | 684 purplebuddylist = list; |
685 } | 685 } |
686 | 686 |
687 GaimBuddyList * | 687 PurpleBuddyList * |
688 gaim_get_blist() | 688 purple_get_blist() |
689 { | 689 { |
690 return gaimbuddylist; | 690 return purplebuddylist; |
691 } | 691 } |
692 | 692 |
693 GaimBlistNode * | 693 PurpleBlistNode * |
694 gaim_blist_get_root() | 694 purple_blist_get_root() |
695 { | 695 { |
696 return gaimbuddylist ? gaimbuddylist->root : NULL; | 696 return purplebuddylist ? purplebuddylist->root : NULL; |
697 } | 697 } |
698 | 698 |
699 void gaim_blist_show() | 699 void purple_blist_show() |
700 { | 700 { |
701 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 701 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
702 | 702 |
703 if (ops && ops->show) | 703 if (ops && ops->show) |
704 ops->show(gaimbuddylist); | 704 ops->show(purplebuddylist); |
705 } | 705 } |
706 | 706 |
707 void gaim_blist_destroy() | 707 void purple_blist_destroy() |
708 { | 708 { |
709 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 709 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
710 | 710 |
711 gaim_debug(GAIM_DEBUG_INFO, "blist", "Destroying\n"); | 711 purple_debug(PURPLE_DEBUG_INFO, "blist", "Destroying\n"); |
712 | 712 |
713 if (ops && ops->destroy) | 713 if (ops && ops->destroy) |
714 ops->destroy(gaimbuddylist); | 714 ops->destroy(purplebuddylist); |
715 } | 715 } |
716 | 716 |
717 void gaim_blist_set_visible(gboolean show) | 717 void purple_blist_set_visible(gboolean show) |
718 { | 718 { |
719 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 719 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
720 | 720 |
721 if (ops && ops->set_visible) | 721 if (ops && ops->set_visible) |
722 ops->set_visible(gaimbuddylist, show); | 722 ops->set_visible(purplebuddylist, show); |
723 } | 723 } |
724 | 724 |
725 static GaimBlistNode *get_next_node(GaimBlistNode *node, gboolean godeep) | 725 static PurpleBlistNode *get_next_node(PurpleBlistNode *node, gboolean godeep) |
726 { | 726 { |
727 if (node == NULL) | 727 if (node == NULL) |
728 return NULL; | 728 return NULL; |
729 | 729 |
730 if (godeep && node->child) | 730 if (godeep && node->child) |
734 return node->next; | 734 return node->next; |
735 | 735 |
736 return get_next_node(node->parent, FALSE); | 736 return get_next_node(node->parent, FALSE); |
737 } | 737 } |
738 | 738 |
739 GaimBlistNode *gaim_blist_node_next(GaimBlistNode *node, gboolean offline) | 739 PurpleBlistNode *purple_blist_node_next(PurpleBlistNode *node, gboolean offline) |
740 { | 740 { |
741 GaimBlistNode *ret = node; | 741 PurpleBlistNode *ret = node; |
742 | 742 |
743 if (offline) | 743 if (offline) |
744 return get_next_node(ret, TRUE); | 744 return get_next_node(ret, TRUE); |
745 do | 745 do |
746 { | 746 { |
747 ret = get_next_node(ret, TRUE); | 747 ret = get_next_node(ret, TRUE); |
748 } while (ret && GAIM_BLIST_NODE_IS_BUDDY(ret) && | 748 } while (ret && PURPLE_BLIST_NODE_IS_BUDDY(ret) && |
749 !gaim_account_is_connected(gaim_buddy_get_account((GaimBuddy *)ret))); | 749 !purple_account_is_connected(purple_buddy_get_account((PurpleBuddy *)ret))); |
750 | 750 |
751 return ret; | 751 return ret; |
752 } | 752 } |
753 | 753 |
754 void | 754 void |
755 gaim_blist_update_buddy_status(GaimBuddy *buddy, GaimStatus *old_status) | 755 purple_blist_update_buddy_status(PurpleBuddy *buddy, PurpleStatus *old_status) |
756 { | 756 { |
757 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 757 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
758 GaimPresence *presence; | 758 PurplePresence *presence; |
759 GaimStatus *status; | 759 PurpleStatus *status; |
760 | 760 |
761 g_return_if_fail(buddy != NULL); | 761 g_return_if_fail(buddy != NULL); |
762 | 762 |
763 presence = gaim_buddy_get_presence(buddy); | 763 presence = purple_buddy_get_presence(buddy); |
764 status = gaim_presence_get_active_status(presence); | 764 status = purple_presence_get_active_status(presence); |
765 | 765 |
766 gaim_debug_info("blist", "Updating buddy status for %s (%s)\n", | 766 purple_debug_info("blist", "Updating buddy status for %s (%s)\n", |
767 buddy->name, gaim_account_get_protocol_name(buddy->account)); | 767 buddy->name, purple_account_get_protocol_name(buddy->account)); |
768 | 768 |
769 if (gaim_status_is_online(status) && | 769 if (purple_status_is_online(status) && |
770 !gaim_status_is_online(old_status)) { | 770 !purple_status_is_online(old_status)) { |
771 | 771 |
772 gaim_signal_emit(gaim_blist_get_handle(), "buddy-signed-on", buddy); | 772 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-on", buddy); |
773 | 773 |
774 ((GaimContact*)((GaimBlistNode*)buddy)->parent)->online++; | 774 ((PurpleContact*)((PurpleBlistNode*)buddy)->parent)->online++; |
775 if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 1) | 775 if (((PurpleContact*)((PurpleBlistNode*)buddy)->parent)->online == 1) |
776 ((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online++; | 776 ((PurpleGroup *)((PurpleBlistNode *)buddy)->parent->parent)->online++; |
777 } else if (!gaim_status_is_online(status) && | 777 } else if (!purple_status_is_online(status) && |
778 gaim_status_is_online(old_status)) { | 778 purple_status_is_online(old_status)) { |
779 gaim_blist_node_set_int(&buddy->node, "last_seen", time(NULL)); | 779 purple_blist_node_set_int(&buddy->node, "last_seen", time(NULL)); |
780 gaim_signal_emit(gaim_blist_get_handle(), "buddy-signed-off", buddy); | 780 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-off", buddy); |
781 ((GaimContact*)((GaimBlistNode*)buddy)->parent)->online--; | 781 ((PurpleContact*)((PurpleBlistNode*)buddy)->parent)->online--; |
782 if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 0) | 782 if (((PurpleContact*)((PurpleBlistNode*)buddy)->parent)->online == 0) |
783 ((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online--; | 783 ((PurpleGroup *)((PurpleBlistNode *)buddy)->parent->parent)->online--; |
784 } else { | 784 } else { |
785 gaim_signal_emit(gaim_blist_get_handle(), | 785 purple_signal_emit(purple_blist_get_handle(), |
786 "buddy-status-changed", buddy, old_status, | 786 "buddy-status-changed", buddy, old_status, |
787 status); | 787 status); |
788 } | 788 } |
789 | 789 |
790 /* | 790 /* |
795 * | 795 * |
796 * It's a safe assumption that SOMETHING called this function. PROBABLY | 796 * It's a safe assumption that SOMETHING called this function. PROBABLY |
797 * because something, somewhere changed. Calling the stuff below | 797 * because something, somewhere changed. Calling the stuff below |
798 * certainly won't hurt anything. Unless you're on a K6-2 300. | 798 * certainly won't hurt anything. Unless you're on a K6-2 300. |
799 */ | 799 */ |
800 gaim_contact_invalidate_priority_buddy(gaim_buddy_get_contact(buddy)); | 800 purple_contact_invalidate_priority_buddy(purple_buddy_get_contact(buddy)); |
801 if (ops && ops->update) | 801 if (ops && ops->update) |
802 ops->update(gaimbuddylist, (GaimBlistNode *)buddy); | 802 ops->update(purplebuddylist, (PurpleBlistNode *)buddy); |
803 } | 803 } |
804 | 804 |
805 void gaim_blist_update_buddy_icon(GaimBuddy *buddy) | 805 void purple_blist_update_buddy_icon(PurpleBuddy *buddy) |
806 { | 806 { |
807 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 807 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
808 | 808 |
809 g_return_if_fail(buddy != NULL); | 809 g_return_if_fail(buddy != NULL); |
810 | 810 |
811 if (ops && ops->update) | 811 if (ops && ops->update) |
812 ops->update(gaimbuddylist, (GaimBlistNode *)buddy); | 812 ops->update(purplebuddylist, (PurpleBlistNode *)buddy); |
813 } | 813 } |
814 | 814 |
815 /* | 815 /* |
816 * TODO: Maybe remove the call to this from server.c and call it | 816 * TODO: Maybe remove the call to this from server.c and call it |
817 * from oscar.c and toc.c instead? | 817 * from oscar.c and toc.c instead? |
818 */ | 818 */ |
819 void gaim_blist_rename_buddy(GaimBuddy *buddy, const char *name) | 819 void purple_blist_rename_buddy(PurpleBuddy *buddy, const char *name) |
820 { | 820 { |
821 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 821 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
822 struct _gaim_hbuddy *hb; | 822 struct _purple_hbuddy *hb; |
823 | 823 |
824 g_return_if_fail(buddy != NULL); | 824 g_return_if_fail(buddy != NULL); |
825 | 825 |
826 hb = g_new(struct _gaim_hbuddy, 1); | 826 hb = g_new(struct _purple_hbuddy, 1); |
827 hb->name = g_strdup(gaim_normalize(buddy->account, buddy->name)); | 827 hb->name = g_strdup(purple_normalize(buddy->account, buddy->name)); |
828 hb->account = buddy->account; | 828 hb->account = buddy->account; |
829 hb->group = ((GaimBlistNode *)buddy)->parent->parent; | 829 hb->group = ((PurpleBlistNode *)buddy)->parent->parent; |
830 g_hash_table_remove(gaimbuddylist->buddies, hb); | 830 g_hash_table_remove(purplebuddylist->buddies, hb); |
831 | 831 |
832 g_free(hb->name); | 832 g_free(hb->name); |
833 hb->name = g_strdup(gaim_normalize(buddy->account, name)); | 833 hb->name = g_strdup(purple_normalize(buddy->account, name)); |
834 g_hash_table_replace(gaimbuddylist->buddies, hb, buddy); | 834 g_hash_table_replace(purplebuddylist->buddies, hb, buddy); |
835 | 835 |
836 g_free(buddy->name); | 836 g_free(buddy->name); |
837 buddy->name = g_strdup(name); | 837 buddy->name = g_strdup(name); |
838 | 838 |
839 gaim_blist_schedule_save(); | 839 purple_blist_schedule_save(); |
840 | 840 |
841 if (ops && ops->update) | 841 if (ops && ops->update) |
842 ops->update(gaimbuddylist, (GaimBlistNode *)buddy); | 842 ops->update(purplebuddylist, (PurpleBlistNode *)buddy); |
843 } | 843 } |
844 | 844 |
845 void gaim_blist_alias_contact(GaimContact *contact, const char *alias) | 845 void purple_blist_alias_contact(PurpleContact *contact, const char *alias) |
846 { | 846 { |
847 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 847 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
848 GaimConversation *conv; | 848 PurpleConversation *conv; |
849 GaimBlistNode *bnode; | 849 PurpleBlistNode *bnode; |
850 char *old_alias; | 850 char *old_alias; |
851 | 851 |
852 g_return_if_fail(contact != NULL); | 852 g_return_if_fail(contact != NULL); |
853 | 853 |
854 old_alias = contact->alias; | 854 old_alias = contact->alias; |
856 if ((alias != NULL) && (*alias != '\0')) | 856 if ((alias != NULL) && (*alias != '\0')) |
857 contact->alias = g_strdup(alias); | 857 contact->alias = g_strdup(alias); |
858 else | 858 else |
859 contact->alias = NULL; | 859 contact->alias = NULL; |
860 | 860 |
861 gaim_blist_schedule_save(); | 861 purple_blist_schedule_save(); |
862 | 862 |
863 if (ops && ops->update) | 863 if (ops && ops->update) |
864 ops->update(gaimbuddylist, (GaimBlistNode *)contact); | 864 ops->update(purplebuddylist, (PurpleBlistNode *)contact); |
865 | 865 |
866 for(bnode = ((GaimBlistNode *)contact)->child; bnode != NULL; bnode = bnode->next) | 866 for(bnode = ((PurpleBlistNode *)contact)->child; bnode != NULL; bnode = bnode->next) |
867 { | 867 { |
868 GaimBuddy *buddy = (GaimBuddy *)bnode; | 868 PurpleBuddy *buddy = (PurpleBuddy *)bnode; |
869 | 869 |
870 conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, buddy->name, | 870 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy->name, |
871 buddy->account); | 871 buddy->account); |
872 if (conv) | 872 if (conv) |
873 gaim_conversation_autoset_title(conv); | 873 purple_conversation_autoset_title(conv); |
874 } | 874 } |
875 | 875 |
876 gaim_signal_emit(gaim_blist_get_handle(), "blist-node-aliased", | 876 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased", |
877 contact, old_alias); | 877 contact, old_alias); |
878 g_free(old_alias); | 878 g_free(old_alias); |
879 } | 879 } |
880 | 880 |
881 void gaim_blist_alias_chat(GaimChat *chat, const char *alias) | 881 void purple_blist_alias_chat(PurpleChat *chat, const char *alias) |
882 { | 882 { |
883 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 883 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
884 char *old_alias; | 884 char *old_alias; |
885 | 885 |
886 g_return_if_fail(chat != NULL); | 886 g_return_if_fail(chat != NULL); |
887 | 887 |
888 old_alias = chat->alias; | 888 old_alias = chat->alias; |
890 if ((alias != NULL) && (*alias != '\0')) | 890 if ((alias != NULL) && (*alias != '\0')) |
891 chat->alias = g_strdup(alias); | 891 chat->alias = g_strdup(alias); |
892 else | 892 else |
893 chat->alias = NULL; | 893 chat->alias = NULL; |
894 | 894 |
895 gaim_blist_schedule_save(); | 895 purple_blist_schedule_save(); |
896 | 896 |
897 if (ops && ops->update) | 897 if (ops && ops->update) |
898 ops->update(gaimbuddylist, (GaimBlistNode *)chat); | 898 ops->update(purplebuddylist, (PurpleBlistNode *)chat); |
899 | 899 |
900 gaim_signal_emit(gaim_blist_get_handle(), "blist-node-aliased", | 900 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased", |
901 chat, old_alias); | 901 chat, old_alias); |
902 g_free(old_alias); | 902 g_free(old_alias); |
903 } | 903 } |
904 | 904 |
905 void gaim_blist_alias_buddy(GaimBuddy *buddy, const char *alias) | 905 void purple_blist_alias_buddy(PurpleBuddy *buddy, const char *alias) |
906 { | 906 { |
907 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 907 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
908 GaimConversation *conv; | 908 PurpleConversation *conv; |
909 char *old_alias; | 909 char *old_alias; |
910 | 910 |
911 g_return_if_fail(buddy != NULL); | 911 g_return_if_fail(buddy != NULL); |
912 | 912 |
913 old_alias = buddy->alias; | 913 old_alias = buddy->alias; |
915 if ((alias != NULL) && (*alias != '\0')) | 915 if ((alias != NULL) && (*alias != '\0')) |
916 buddy->alias = g_strdup(alias); | 916 buddy->alias = g_strdup(alias); |
917 else | 917 else |
918 buddy->alias = NULL; | 918 buddy->alias = NULL; |
919 | 919 |
920 gaim_blist_schedule_save(); | 920 purple_blist_schedule_save(); |
921 | 921 |
922 if (ops && ops->update) | 922 if (ops && ops->update) |
923 ops->update(gaimbuddylist, (GaimBlistNode *)buddy); | 923 ops->update(purplebuddylist, (PurpleBlistNode *)buddy); |
924 | 924 |
925 conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, buddy->name, | 925 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy->name, |
926 buddy->account); | 926 buddy->account); |
927 if (conv) | 927 if (conv) |
928 gaim_conversation_autoset_title(conv); | 928 purple_conversation_autoset_title(conv); |
929 | 929 |
930 gaim_signal_emit(gaim_blist_get_handle(), "blist-node-aliased", | 930 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased", |
931 buddy, old_alias); | 931 buddy, old_alias); |
932 g_free(old_alias); | 932 g_free(old_alias); |
933 } | 933 } |
934 | 934 |
935 void gaim_blist_server_alias_buddy(GaimBuddy *buddy, const char *alias) | 935 void purple_blist_server_alias_buddy(PurpleBuddy *buddy, const char *alias) |
936 { | 936 { |
937 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 937 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
938 GaimConversation *conv; | 938 PurpleConversation *conv; |
939 char *old_alias; | 939 char *old_alias; |
940 | 940 |
941 g_return_if_fail(buddy != NULL); | 941 g_return_if_fail(buddy != NULL); |
942 | 942 |
943 old_alias = buddy->server_alias; | 943 old_alias = buddy->server_alias; |
945 if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL)) | 945 if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL)) |
946 buddy->server_alias = g_strdup(alias); | 946 buddy->server_alias = g_strdup(alias); |
947 else | 947 else |
948 buddy->server_alias = NULL; | 948 buddy->server_alias = NULL; |
949 | 949 |
950 gaim_blist_schedule_save(); | 950 purple_blist_schedule_save(); |
951 | 951 |
952 if (ops && ops->update) | 952 if (ops && ops->update) |
953 ops->update(gaimbuddylist, (GaimBlistNode *)buddy); | 953 ops->update(purplebuddylist, (PurpleBlistNode *)buddy); |
954 | 954 |
955 conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, buddy->name, | 955 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy->name, |
956 buddy->account); | 956 buddy->account); |
957 if (conv) | 957 if (conv) |
958 gaim_conversation_autoset_title(conv); | 958 purple_conversation_autoset_title(conv); |
959 | 959 |
960 gaim_signal_emit(gaim_blist_get_handle(), "blist-node-aliased", | 960 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased", |
961 buddy, old_alias); | 961 buddy, old_alias); |
962 g_free(old_alias); | 962 g_free(old_alias); |
963 } | 963 } |
964 | 964 |
965 /* | 965 /* |
966 * TODO: If merging, prompt the user if they want to merge. | 966 * TODO: If merging, prompt the user if they want to merge. |
967 */ | 967 */ |
968 void gaim_blist_rename_group(GaimGroup *source, const char *new_name) | 968 void purple_blist_rename_group(PurpleGroup *source, const char *new_name) |
969 { | 969 { |
970 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 970 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
971 GaimGroup *dest; | 971 PurpleGroup *dest; |
972 gchar *old_name; | 972 gchar *old_name; |
973 GList *moved_buddies = NULL; | 973 GList *moved_buddies = NULL; |
974 GSList *accts; | 974 GSList *accts; |
975 | 975 |
976 g_return_if_fail(source != NULL); | 976 g_return_if_fail(source != NULL); |
977 g_return_if_fail(new_name != NULL); | 977 g_return_if_fail(new_name != NULL); |
978 | 978 |
979 if (*new_name == '\0' || !strcmp(new_name, source->name)) | 979 if (*new_name == '\0' || !strcmp(new_name, source->name)) |
980 return; | 980 return; |
981 | 981 |
982 dest = gaim_find_group(new_name); | 982 dest = purple_find_group(new_name); |
983 if (dest != NULL) { | 983 if (dest != NULL) { |
984 /* We're merging two groups */ | 984 /* We're merging two groups */ |
985 GaimBlistNode *prev, *child, *next; | 985 PurpleBlistNode *prev, *child, *next; |
986 | 986 |
987 prev = gaim_blist_get_last_child((GaimBlistNode*)dest); | 987 prev = purple_blist_get_last_child((PurpleBlistNode*)dest); |
988 child = ((GaimBlistNode*)source)->child; | 988 child = ((PurpleBlistNode*)source)->child; |
989 | 989 |
990 /* | 990 /* |
991 * TODO: This seems like a dumb way to do this... why not just | 991 * TODO: This seems like a dumb way to do this... why not just |
992 * append all children from the old group to the end of the new | 992 * append all children from the old group to the end of the new |
993 * one? PRPLs might be expecting to receive an add_buddy() for | 993 * one? PRPLs might be expecting to receive an add_buddy() for |
994 * each moved buddy... | 994 * each moved buddy... |
995 */ | 995 */ |
996 while (child) | 996 while (child) |
997 { | 997 { |
998 next = child->next; | 998 next = child->next; |
999 if (GAIM_BLIST_NODE_IS_CONTACT(child)) { | 999 if (PURPLE_BLIST_NODE_IS_CONTACT(child)) { |
1000 GaimBlistNode *bnode; | 1000 PurpleBlistNode *bnode; |
1001 gaim_blist_add_contact((GaimContact *)child, dest, prev); | 1001 purple_blist_add_contact((PurpleContact *)child, dest, prev); |
1002 for (bnode = child->child; bnode != NULL; bnode = bnode->next) { | 1002 for (bnode = child->child; bnode != NULL; bnode = bnode->next) { |
1003 gaim_blist_add_buddy((GaimBuddy *)bnode, (GaimContact *)child, | 1003 purple_blist_add_buddy((PurpleBuddy *)bnode, (PurpleContact *)child, |
1004 NULL, bnode->prev); | 1004 NULL, bnode->prev); |
1005 moved_buddies = g_list_append(moved_buddies, bnode); | 1005 moved_buddies = g_list_append(moved_buddies, bnode); |
1006 } | 1006 } |
1007 prev = child; | 1007 prev = child; |
1008 } else if (GAIM_BLIST_NODE_IS_CHAT(child)) { | 1008 } else if (PURPLE_BLIST_NODE_IS_CHAT(child)) { |
1009 gaim_blist_add_chat((GaimChat *)child, dest, prev); | 1009 purple_blist_add_chat((PurpleChat *)child, dest, prev); |
1010 prev = child; | 1010 prev = child; |
1011 } else { | 1011 } else { |
1012 gaim_debug(GAIM_DEBUG_ERROR, "blist", | 1012 purple_debug(PURPLE_DEBUG_ERROR, "blist", |
1013 "Unknown child type in group %s\n", source->name); | 1013 "Unknown child type in group %s\n", source->name); |
1014 } | 1014 } |
1015 child = next; | 1015 child = next; |
1016 } | 1016 } |
1017 | 1017 |
1018 /* Make a copy of the old group name and then delete the old group */ | 1018 /* Make a copy of the old group name and then delete the old group */ |
1019 old_name = g_strdup(source->name); | 1019 old_name = g_strdup(source->name); |
1020 gaim_blist_remove_group(source); | 1020 purple_blist_remove_group(source); |
1021 source = dest; | 1021 source = dest; |
1022 } else { | 1022 } else { |
1023 /* A simple rename */ | 1023 /* A simple rename */ |
1024 GaimBlistNode *cnode, *bnode; | 1024 PurpleBlistNode *cnode, *bnode; |
1025 | 1025 |
1026 /* Build a GList of all buddies in this group */ | 1026 /* Build a GList of all buddies in this group */ |
1027 for (cnode = ((GaimBlistNode *)source)->child; cnode != NULL; cnode = cnode->next) { | 1027 for (cnode = ((PurpleBlistNode *)source)->child; cnode != NULL; cnode = cnode->next) { |
1028 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) | 1028 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) |
1029 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next) | 1029 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next) |
1030 moved_buddies = g_list_append(moved_buddies, bnode); | 1030 moved_buddies = g_list_append(moved_buddies, bnode); |
1031 } | 1031 } |
1032 | 1032 |
1033 old_name = source->name; | 1033 old_name = source->name; |
1034 source->name = g_strdup(new_name); | 1034 source->name = g_strdup(new_name); |
1035 } | 1035 } |
1036 | 1036 |
1037 /* Save our changes */ | 1037 /* Save our changes */ |
1038 gaim_blist_schedule_save(); | 1038 purple_blist_schedule_save(); |
1039 | 1039 |
1040 /* Update the UI */ | 1040 /* Update the UI */ |
1041 if (ops && ops->update) | 1041 if (ops && ops->update) |
1042 ops->update(gaimbuddylist, (GaimBlistNode*)source); | 1042 ops->update(purplebuddylist, (PurpleBlistNode*)source); |
1043 | 1043 |
1044 /* Notify all PRPLs */ | 1044 /* Notify all PRPLs */ |
1045 /* TODO: Is this condition needed? Seems like it would always be TRUE */ | 1045 /* TODO: Is this condition needed? Seems like it would always be TRUE */ |
1046 if(old_name && source && strcmp(source->name, old_name)) { | 1046 if(old_name && source && strcmp(source->name, old_name)) { |
1047 for (accts = gaim_group_get_accounts(source); accts; accts = g_slist_remove(accts, accts->data)) { | 1047 for (accts = purple_group_get_accounts(source); accts; accts = g_slist_remove(accts, accts->data)) { |
1048 GaimAccount *account = accts->data; | 1048 PurpleAccount *account = accts->data; |
1049 GaimPluginProtocolInfo *prpl_info = NULL; | 1049 PurplePluginProtocolInfo *prpl_info = NULL; |
1050 GList *l = NULL, *buddies = NULL; | 1050 GList *l = NULL, *buddies = NULL; |
1051 | 1051 |
1052 if(account->gc && account->gc->prpl) | 1052 if(account->gc && account->gc->prpl) |
1053 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl); | 1053 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(account->gc->prpl); |
1054 | 1054 |
1055 if(!prpl_info) | 1055 if(!prpl_info) |
1056 continue; | 1056 continue; |
1057 | 1057 |
1058 for(l = moved_buddies; l; l = l->next) { | 1058 for(l = moved_buddies; l; l = l->next) { |
1059 GaimBuddy *buddy = (GaimBuddy *)l->data; | 1059 PurpleBuddy *buddy = (PurpleBuddy *)l->data; |
1060 | 1060 |
1061 if(buddy && buddy->account == account) | 1061 if(buddy && buddy->account == account) |
1062 buddies = g_list_append(buddies, (GaimBlistNode *)buddy); | 1062 buddies = g_list_append(buddies, (PurpleBlistNode *)buddy); |
1063 } | 1063 } |
1064 | 1064 |
1065 if(prpl_info->rename_group) { | 1065 if(prpl_info->rename_group) { |
1066 prpl_info->rename_group(account->gc, old_name, source, buddies); | 1066 prpl_info->rename_group(account->gc, old_name, source, buddies); |
1067 } else { | 1067 } else { |
1068 GList *cur, *groups = NULL; | 1068 GList *cur, *groups = NULL; |
1069 | 1069 |
1070 /* Make a list of what the groups each buddy is in */ | 1070 /* Make a list of what the groups each buddy is in */ |
1071 for(cur = buddies; cur; cur = cur->next) { | 1071 for(cur = buddies; cur; cur = cur->next) { |
1072 GaimBlistNode *node = (GaimBlistNode *)cur->data; | 1072 PurpleBlistNode *node = (PurpleBlistNode *)cur->data; |
1073 groups = g_list_prepend(groups, node->parent->parent); | 1073 groups = g_list_prepend(groups, node->parent->parent); |
1074 } | 1074 } |
1075 | 1075 |
1076 gaim_account_remove_buddies(account, buddies, groups); | 1076 purple_account_remove_buddies(account, buddies, groups); |
1077 g_list_free(groups); | 1077 g_list_free(groups); |
1078 gaim_account_add_buddies(account, buddies); | 1078 purple_account_add_buddies(account, buddies); |
1079 } | 1079 } |
1080 | 1080 |
1081 g_list_free(buddies); | 1081 g_list_free(buddies); |
1082 } | 1082 } |
1083 } | 1083 } |
1084 g_list_free(moved_buddies); | 1084 g_list_free(moved_buddies); |
1085 g_free(old_name); | 1085 g_free(old_name); |
1086 } | 1086 } |
1087 | 1087 |
1088 static void gaim_blist_node_initialize_settings(GaimBlistNode *node); | 1088 static void purple_blist_node_initialize_settings(PurpleBlistNode *node); |
1089 | 1089 |
1090 GaimChat *gaim_chat_new(GaimAccount *account, const char *alias, GHashTable *components) | 1090 PurpleChat *purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components) |
1091 { | 1091 { |
1092 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1092 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1093 GaimChat *chat; | 1093 PurpleChat *chat; |
1094 | 1094 |
1095 g_return_val_if_fail(account != NULL, FALSE); | 1095 g_return_val_if_fail(account != NULL, FALSE); |
1096 g_return_val_if_fail(components != NULL, FALSE); | 1096 g_return_val_if_fail(components != NULL, FALSE); |
1097 | 1097 |
1098 chat = g_new0(GaimChat, 1); | 1098 chat = g_new0(PurpleChat, 1); |
1099 chat->account = account; | 1099 chat->account = account; |
1100 if ((alias != NULL) && (*alias != '\0')) | 1100 if ((alias != NULL) && (*alias != '\0')) |
1101 chat->alias = g_strdup(alias); | 1101 chat->alias = g_strdup(alias); |
1102 chat->components = components; | 1102 chat->components = components; |
1103 gaim_blist_node_initialize_settings((GaimBlistNode *)chat); | 1103 purple_blist_node_initialize_settings((PurpleBlistNode *)chat); |
1104 ((GaimBlistNode *)chat)->type = GAIM_BLIST_CHAT_NODE; | 1104 ((PurpleBlistNode *)chat)->type = PURPLE_BLIST_CHAT_NODE; |
1105 | 1105 |
1106 if (ops != NULL && ops->new_node != NULL) | 1106 if (ops != NULL && ops->new_node != NULL) |
1107 ops->new_node((GaimBlistNode *)chat); | 1107 ops->new_node((PurpleBlistNode *)chat); |
1108 | 1108 |
1109 GAIM_DBUS_REGISTER_POINTER(chat, GaimChat); | 1109 PURPLE_DBUS_REGISTER_POINTER(chat, PurpleChat); |
1110 return chat; | 1110 return chat; |
1111 } | 1111 } |
1112 | 1112 |
1113 GaimBuddy *gaim_buddy_new(GaimAccount *account, const char *screenname, const char *alias) | 1113 PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *screenname, const char *alias) |
1114 { | 1114 { |
1115 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1115 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1116 GaimBuddy *buddy; | 1116 PurpleBuddy *buddy; |
1117 | 1117 |
1118 g_return_val_if_fail(account != NULL, FALSE); | 1118 g_return_val_if_fail(account != NULL, FALSE); |
1119 g_return_val_if_fail(screenname != NULL, FALSE); | 1119 g_return_val_if_fail(screenname != NULL, FALSE); |
1120 | 1120 |
1121 buddy = g_new0(GaimBuddy, 1); | 1121 buddy = g_new0(PurpleBuddy, 1); |
1122 buddy->account = account; | 1122 buddy->account = account; |
1123 buddy->name = g_strdup(screenname); | 1123 buddy->name = g_strdup(screenname); |
1124 buddy->alias = g_strdup(alias); | 1124 buddy->alias = g_strdup(alias); |
1125 buddy->presence = gaim_presence_new_for_buddy(buddy); | 1125 buddy->presence = purple_presence_new_for_buddy(buddy); |
1126 ((GaimBlistNode *)buddy)->type = GAIM_BLIST_BUDDY_NODE; | 1126 ((PurpleBlistNode *)buddy)->type = PURPLE_BLIST_BUDDY_NODE; |
1127 | 1127 |
1128 gaim_presence_set_status_active(buddy->presence, "offline", TRUE); | 1128 purple_presence_set_status_active(buddy->presence, "offline", TRUE); |
1129 | 1129 |
1130 gaim_blist_node_initialize_settings((GaimBlistNode *)buddy); | 1130 purple_blist_node_initialize_settings((PurpleBlistNode *)buddy); |
1131 | 1131 |
1132 if (ops && ops->new_node) | 1132 if (ops && ops->new_node) |
1133 ops->new_node((GaimBlistNode *)buddy); | 1133 ops->new_node((PurpleBlistNode *)buddy); |
1134 | 1134 |
1135 GAIM_DBUS_REGISTER_POINTER(buddy, GaimBuddy); | 1135 PURPLE_DBUS_REGISTER_POINTER(buddy, PurpleBuddy); |
1136 return buddy; | 1136 return buddy; |
1137 } | 1137 } |
1138 | 1138 |
1139 void | 1139 void |
1140 gaim_buddy_set_icon(GaimBuddy *buddy, GaimBuddyIcon *icon) | 1140 purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon) |
1141 { | 1141 { |
1142 g_return_if_fail(buddy != NULL); | 1142 g_return_if_fail(buddy != NULL); |
1143 | 1143 |
1144 if (buddy->icon != icon) { | 1144 if (buddy->icon != icon) { |
1145 if (buddy->icon != NULL) | 1145 if (buddy->icon != NULL) |
1146 gaim_buddy_icon_unref(buddy->icon); | 1146 purple_buddy_icon_unref(buddy->icon); |
1147 | 1147 |
1148 buddy->icon = (icon != NULL ? gaim_buddy_icon_ref(icon) : NULL); | 1148 buddy->icon = (icon != NULL ? purple_buddy_icon_ref(icon) : NULL); |
1149 } | 1149 } |
1150 | 1150 |
1151 if (buddy->icon) | 1151 if (buddy->icon) |
1152 gaim_buddy_icon_cache(icon, buddy); | 1152 purple_buddy_icon_cache(icon, buddy); |
1153 else | 1153 else |
1154 gaim_buddy_icon_uncache(buddy); | 1154 purple_buddy_icon_uncache(buddy); |
1155 | 1155 |
1156 gaim_blist_schedule_save(); | 1156 purple_blist_schedule_save(); |
1157 | 1157 |
1158 gaim_signal_emit(gaim_blist_get_handle(), "buddy-icon-changed", buddy); | 1158 purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy); |
1159 | 1159 |
1160 gaim_blist_update_buddy_icon(buddy); | 1160 purple_blist_update_buddy_icon(buddy); |
1161 } | 1161 } |
1162 | 1162 |
1163 GaimAccount * | 1163 PurpleAccount * |
1164 gaim_buddy_get_account(const GaimBuddy *buddy) | 1164 purple_buddy_get_account(const PurpleBuddy *buddy) |
1165 { | 1165 { |
1166 g_return_val_if_fail(buddy != NULL, NULL); | 1166 g_return_val_if_fail(buddy != NULL, NULL); |
1167 | 1167 |
1168 return buddy->account; | 1168 return buddy->account; |
1169 } | 1169 } |
1170 | 1170 |
1171 const char * | 1171 const char * |
1172 gaim_buddy_get_name(const GaimBuddy *buddy) | 1172 purple_buddy_get_name(const PurpleBuddy *buddy) |
1173 { | 1173 { |
1174 g_return_val_if_fail(buddy != NULL, NULL); | 1174 g_return_val_if_fail(buddy != NULL, NULL); |
1175 | 1175 |
1176 return buddy->name; | 1176 return buddy->name; |
1177 } | 1177 } |
1178 | 1178 |
1179 GaimBuddyIcon * | 1179 PurpleBuddyIcon * |
1180 gaim_buddy_get_icon(const GaimBuddy *buddy) | 1180 purple_buddy_get_icon(const PurpleBuddy *buddy) |
1181 { | 1181 { |
1182 g_return_val_if_fail(buddy != NULL, NULL); | 1182 g_return_val_if_fail(buddy != NULL, NULL); |
1183 | 1183 |
1184 return buddy->icon; | 1184 return buddy->icon; |
1185 } | 1185 } |
1186 | 1186 |
1187 void gaim_blist_add_chat(GaimChat *chat, GaimGroup *group, GaimBlistNode *node) | 1187 void purple_blist_add_chat(PurpleChat *chat, PurpleGroup *group, PurpleBlistNode *node) |
1188 { | 1188 { |
1189 GaimBlistNode *cnode = (GaimBlistNode*)chat; | 1189 PurpleBlistNode *cnode = (PurpleBlistNode*)chat; |
1190 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1190 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1191 | 1191 |
1192 g_return_if_fail(chat != NULL); | 1192 g_return_if_fail(chat != NULL); |
1193 g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT((GaimBlistNode *)chat)); | 1193 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT((PurpleBlistNode *)chat)); |
1194 | 1194 |
1195 if (node == NULL) { | 1195 if (node == NULL) { |
1196 if (group == NULL) { | 1196 if (group == NULL) { |
1197 group = gaim_group_new(_("Chats")); | 1197 group = purple_group_new(_("Chats")); |
1198 gaim_blist_add_group(group, | 1198 purple_blist_add_group(group, |
1199 gaim_blist_get_last_sibling(gaimbuddylist->root)); | 1199 purple_blist_get_last_sibling(purplebuddylist->root)); |
1200 } | 1200 } |
1201 } else { | 1201 } else { |
1202 group = (GaimGroup*)node->parent; | 1202 group = (PurpleGroup*)node->parent; |
1203 } | 1203 } |
1204 | 1204 |
1205 /* if we're moving to overtop of ourselves, do nothing */ | 1205 /* if we're moving to overtop of ourselves, do nothing */ |
1206 if (cnode == node) | 1206 if (cnode == node) |
1207 return; | 1207 return; |
1208 | 1208 |
1209 if (cnode->parent) { | 1209 if (cnode->parent) { |
1210 /* This chat was already in the list and is | 1210 /* This chat was already in the list and is |
1211 * being moved. | 1211 * being moved. |
1212 */ | 1212 */ |
1213 ((GaimGroup *)cnode->parent)->totalsize--; | 1213 ((PurpleGroup *)cnode->parent)->totalsize--; |
1214 if (gaim_account_is_connected(chat->account)) { | 1214 if (purple_account_is_connected(chat->account)) { |
1215 ((GaimGroup *)cnode->parent)->online--; | 1215 ((PurpleGroup *)cnode->parent)->online--; |
1216 ((GaimGroup *)cnode->parent)->currentsize--; | 1216 ((PurpleGroup *)cnode->parent)->currentsize--; |
1217 } | 1217 } |
1218 if (cnode->next) | 1218 if (cnode->next) |
1219 cnode->next->prev = cnode->prev; | 1219 cnode->next->prev = cnode->prev; |
1220 if (cnode->prev) | 1220 if (cnode->prev) |
1221 cnode->prev->next = cnode->next; | 1221 cnode->prev->next = cnode->next; |
1222 if (cnode->parent->child == cnode) | 1222 if (cnode->parent->child == cnode) |
1223 cnode->parent->child = cnode->next; | 1223 cnode->parent->child = cnode->next; |
1224 | 1224 |
1225 if (ops && ops->remove) | 1225 if (ops && ops->remove) |
1226 ops->remove(gaimbuddylist, cnode); | 1226 ops->remove(purplebuddylist, cnode); |
1227 /* ops->remove() cleaned up the cnode's ui_data, so we need to | 1227 /* ops->remove() cleaned up the cnode's ui_data, so we need to |
1228 * reinitialize it */ | 1228 * reinitialize it */ |
1229 if (ops && ops->new_node) | 1229 if (ops && ops->new_node) |
1230 ops->new_node(cnode); | 1230 ops->new_node(cnode); |
1231 | 1231 |
1232 gaim_blist_schedule_save(); | 1232 purple_blist_schedule_save(); |
1233 } | 1233 } |
1234 | 1234 |
1235 if (node != NULL) { | 1235 if (node != NULL) { |
1236 if (node->next) | 1236 if (node->next) |
1237 node->next->prev = cnode; | 1237 node->next->prev = cnode; |
1238 cnode->next = node->next; | 1238 cnode->next = node->next; |
1239 cnode->prev = node; | 1239 cnode->prev = node; |
1240 cnode->parent = node->parent; | 1240 cnode->parent = node->parent; |
1241 node->next = cnode; | 1241 node->next = cnode; |
1242 ((GaimGroup *)node->parent)->totalsize++; | 1242 ((PurpleGroup *)node->parent)->totalsize++; |
1243 if (gaim_account_is_connected(chat->account)) { | 1243 if (purple_account_is_connected(chat->account)) { |
1244 ((GaimGroup *)node->parent)->online++; | 1244 ((PurpleGroup *)node->parent)->online++; |
1245 ((GaimGroup *)node->parent)->currentsize++; | 1245 ((PurpleGroup *)node->parent)->currentsize++; |
1246 } | 1246 } |
1247 } else { | 1247 } else { |
1248 if (((GaimBlistNode *)group)->child) | 1248 if (((PurpleBlistNode *)group)->child) |
1249 ((GaimBlistNode *)group)->child->prev = cnode; | 1249 ((PurpleBlistNode *)group)->child->prev = cnode; |
1250 cnode->next = ((GaimBlistNode *)group)->child; | 1250 cnode->next = ((PurpleBlistNode *)group)->child; |
1251 cnode->prev = NULL; | 1251 cnode->prev = NULL; |
1252 ((GaimBlistNode *)group)->child = cnode; | 1252 ((PurpleBlistNode *)group)->child = cnode; |
1253 cnode->parent = (GaimBlistNode *)group; | 1253 cnode->parent = (PurpleBlistNode *)group; |
1254 group->totalsize++; | 1254 group->totalsize++; |
1255 if (gaim_account_is_connected(chat->account)) { | 1255 if (purple_account_is_connected(chat->account)) { |
1256 group->online++; | 1256 group->online++; |
1257 group->currentsize++; | 1257 group->currentsize++; |
1258 } | 1258 } |
1259 } | 1259 } |
1260 | 1260 |
1261 gaim_blist_schedule_save(); | 1261 purple_blist_schedule_save(); |
1262 | 1262 |
1263 if (ops && ops->update) | 1263 if (ops && ops->update) |
1264 ops->update(gaimbuddylist, (GaimBlistNode *)cnode); | 1264 ops->update(purplebuddylist, (PurpleBlistNode *)cnode); |
1265 } | 1265 } |
1266 | 1266 |
1267 void gaim_blist_add_buddy(GaimBuddy *buddy, GaimContact *contact, GaimGroup *group, GaimBlistNode *node) | 1267 void purple_blist_add_buddy(PurpleBuddy *buddy, PurpleContact *contact, PurpleGroup *group, PurpleBlistNode *node) |
1268 { | 1268 { |
1269 GaimBlistNode *cnode, *bnode; | 1269 PurpleBlistNode *cnode, *bnode; |
1270 GaimGroup *g; | 1270 PurpleGroup *g; |
1271 GaimContact *c; | 1271 PurpleContact *c; |
1272 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1272 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1273 struct _gaim_hbuddy *hb; | 1273 struct _purple_hbuddy *hb; |
1274 | 1274 |
1275 g_return_if_fail(buddy != NULL); | 1275 g_return_if_fail(buddy != NULL); |
1276 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY((GaimBlistNode*)buddy)); | 1276 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY((PurpleBlistNode*)buddy)); |
1277 | 1277 |
1278 bnode = (GaimBlistNode *)buddy; | 1278 bnode = (PurpleBlistNode *)buddy; |
1279 | 1279 |
1280 /* if we're moving to overtop of ourselves, do nothing */ | 1280 /* if we're moving to overtop of ourselves, do nothing */ |
1281 if (bnode == node || (!node && bnode->parent && | 1281 if (bnode == node || (!node && bnode->parent && |
1282 contact && bnode->parent == (GaimBlistNode*)contact | 1282 contact && bnode->parent == (PurpleBlistNode*)contact |
1283 && bnode == bnode->parent->child)) | 1283 && bnode == bnode->parent->child)) |
1284 return; | 1284 return; |
1285 | 1285 |
1286 if (node && GAIM_BLIST_NODE_IS_BUDDY(node)) { | 1286 if (node && PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1287 c = (GaimContact*)node->parent; | 1287 c = (PurpleContact*)node->parent; |
1288 g = (GaimGroup*)node->parent->parent; | 1288 g = (PurpleGroup*)node->parent->parent; |
1289 } else if (contact) { | 1289 } else if (contact) { |
1290 c = contact; | 1290 c = contact; |
1291 g = (GaimGroup *)((GaimBlistNode *)c)->parent; | 1291 g = (PurpleGroup *)((PurpleBlistNode *)c)->parent; |
1292 } else { | 1292 } else { |
1293 if (group) { | 1293 if (group) { |
1294 g = group; | 1294 g = group; |
1295 } else { | 1295 } else { |
1296 g = gaim_group_new(_("Buddies")); | 1296 g = purple_group_new(_("Buddies")); |
1297 gaim_blist_add_group(g, | 1297 purple_blist_add_group(g, |
1298 gaim_blist_get_last_sibling(gaimbuddylist->root)); | 1298 purple_blist_get_last_sibling(purplebuddylist->root)); |
1299 } | 1299 } |
1300 c = gaim_contact_new(); | 1300 c = purple_contact_new(); |
1301 gaim_blist_add_contact(c, g, | 1301 purple_blist_add_contact(c, g, |
1302 gaim_blist_get_last_child((GaimBlistNode*)g)); | 1302 purple_blist_get_last_child((PurpleBlistNode*)g)); |
1303 } | 1303 } |
1304 | 1304 |
1305 cnode = (GaimBlistNode *)c; | 1305 cnode = (PurpleBlistNode *)c; |
1306 | 1306 |
1307 if (bnode->parent) { | 1307 if (bnode->parent) { |
1308 if (GAIM_BUDDY_IS_ONLINE(buddy)) { | 1308 if (PURPLE_BUDDY_IS_ONLINE(buddy)) { |
1309 ((GaimContact*)bnode->parent)->online--; | 1309 ((PurpleContact*)bnode->parent)->online--; |
1310 if (((GaimContact*)bnode->parent)->online == 0) | 1310 if (((PurpleContact*)bnode->parent)->online == 0) |
1311 ((GaimGroup*)bnode->parent->parent)->online--; | 1311 ((PurpleGroup*)bnode->parent->parent)->online--; |
1312 } | 1312 } |
1313 if (gaim_account_is_connected(buddy->account)) { | 1313 if (purple_account_is_connected(buddy->account)) { |
1314 ((GaimContact*)bnode->parent)->currentsize--; | 1314 ((PurpleContact*)bnode->parent)->currentsize--; |
1315 if (((GaimContact*)bnode->parent)->currentsize == 0) | 1315 if (((PurpleContact*)bnode->parent)->currentsize == 0) |
1316 ((GaimGroup*)bnode->parent->parent)->currentsize--; | 1316 ((PurpleGroup*)bnode->parent->parent)->currentsize--; |
1317 } | 1317 } |
1318 ((GaimContact*)bnode->parent)->totalsize--; | 1318 ((PurpleContact*)bnode->parent)->totalsize--; |
1319 /* the group totalsize will be taken care of by remove_contact below */ | 1319 /* the group totalsize will be taken care of by remove_contact below */ |
1320 | 1320 |
1321 if (bnode->parent->parent != (GaimBlistNode*)g) | 1321 if (bnode->parent->parent != (PurpleBlistNode*)g) |
1322 serv_move_buddy(buddy, (GaimGroup *)bnode->parent->parent, g); | 1322 serv_move_buddy(buddy, (PurpleGroup *)bnode->parent->parent, g); |
1323 | 1323 |
1324 if (bnode->next) | 1324 if (bnode->next) |
1325 bnode->next->prev = bnode->prev; | 1325 bnode->next->prev = bnode->prev; |
1326 if (bnode->prev) | 1326 if (bnode->prev) |
1327 bnode->prev->next = bnode->next; | 1327 bnode->prev->next = bnode->next; |
1328 if (bnode->parent->child == bnode) | 1328 if (bnode->parent->child == bnode) |
1329 bnode->parent->child = bnode->next; | 1329 bnode->parent->child = bnode->next; |
1330 | 1330 |
1331 if (ops && ops->remove) | 1331 if (ops && ops->remove) |
1332 ops->remove(gaimbuddylist, bnode); | 1332 ops->remove(purplebuddylist, bnode); |
1333 | 1333 |
1334 gaim_blist_schedule_save(); | 1334 purple_blist_schedule_save(); |
1335 | 1335 |
1336 if (bnode->parent->parent != (GaimBlistNode*)g) { | 1336 if (bnode->parent->parent != (PurpleBlistNode*)g) { |
1337 hb = g_new(struct _gaim_hbuddy, 1); | 1337 hb = g_new(struct _purple_hbuddy, 1); |
1338 hb->name = g_strdup(gaim_normalize(buddy->account, buddy->name)); | 1338 hb->name = g_strdup(purple_normalize(buddy->account, buddy->name)); |
1339 hb->account = buddy->account; | 1339 hb->account = buddy->account; |
1340 hb->group = bnode->parent->parent; | 1340 hb->group = bnode->parent->parent; |
1341 g_hash_table_remove(gaimbuddylist->buddies, hb); | 1341 g_hash_table_remove(purplebuddylist->buddies, hb); |
1342 g_free(hb->name); | 1342 g_free(hb->name); |
1343 g_free(hb); | 1343 g_free(hb); |
1344 } | 1344 } |
1345 | 1345 |
1346 if (!bnode->parent->child) { | 1346 if (!bnode->parent->child) { |
1347 gaim_blist_remove_contact((GaimContact*)bnode->parent); | 1347 purple_blist_remove_contact((PurpleContact*)bnode->parent); |
1348 } else { | 1348 } else { |
1349 gaim_contact_invalidate_priority_buddy((GaimContact*)bnode->parent); | 1349 purple_contact_invalidate_priority_buddy((PurpleContact*)bnode->parent); |
1350 if (ops && ops->update) | 1350 if (ops && ops->update) |
1351 ops->update(gaimbuddylist, bnode->parent); | 1351 ops->update(purplebuddylist, bnode->parent); |
1352 } | 1352 } |
1353 } | 1353 } |
1354 | 1354 |
1355 if (node && GAIM_BLIST_NODE_IS_BUDDY(node)) { | 1355 if (node && PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1356 if (node->next) | 1356 if (node->next) |
1357 node->next->prev = bnode; | 1357 node->next->prev = bnode; |
1358 bnode->next = node->next; | 1358 bnode->next = node->next; |
1359 bnode->prev = node; | 1359 bnode->prev = node; |
1360 bnode->parent = node->parent; | 1360 bnode->parent = node->parent; |
1366 bnode->next = cnode->child; | 1366 bnode->next = cnode->child; |
1367 cnode->child = bnode; | 1367 cnode->child = bnode; |
1368 bnode->parent = cnode; | 1368 bnode->parent = cnode; |
1369 } | 1369 } |
1370 | 1370 |
1371 if (GAIM_BUDDY_IS_ONLINE(buddy)) { | 1371 if (PURPLE_BUDDY_IS_ONLINE(buddy)) { |
1372 ((GaimContact*)bnode->parent)->online++; | 1372 ((PurpleContact*)bnode->parent)->online++; |
1373 if (((GaimContact*)bnode->parent)->online == 1) | 1373 if (((PurpleContact*)bnode->parent)->online == 1) |
1374 ((GaimGroup*)bnode->parent->parent)->online++; | 1374 ((PurpleGroup*)bnode->parent->parent)->online++; |
1375 } | 1375 } |
1376 if (gaim_account_is_connected(buddy->account)) { | 1376 if (purple_account_is_connected(buddy->account)) { |
1377 ((GaimContact*)bnode->parent)->currentsize++; | 1377 ((PurpleContact*)bnode->parent)->currentsize++; |
1378 if (((GaimContact*)bnode->parent)->currentsize == 1) | 1378 if (((PurpleContact*)bnode->parent)->currentsize == 1) |
1379 ((GaimGroup*)bnode->parent->parent)->currentsize++; | 1379 ((PurpleGroup*)bnode->parent->parent)->currentsize++; |
1380 } | 1380 } |
1381 ((GaimContact*)bnode->parent)->totalsize++; | 1381 ((PurpleContact*)bnode->parent)->totalsize++; |
1382 | 1382 |
1383 hb = g_new(struct _gaim_hbuddy, 1); | 1383 hb = g_new(struct _purple_hbuddy, 1); |
1384 hb->name = g_strdup(gaim_normalize(buddy->account, buddy->name)); | 1384 hb->name = g_strdup(purple_normalize(buddy->account, buddy->name)); |
1385 hb->account = buddy->account; | 1385 hb->account = buddy->account; |
1386 hb->group = ((GaimBlistNode*)buddy)->parent->parent; | 1386 hb->group = ((PurpleBlistNode*)buddy)->parent->parent; |
1387 | 1387 |
1388 g_hash_table_replace(gaimbuddylist->buddies, hb, buddy); | 1388 g_hash_table_replace(purplebuddylist->buddies, hb, buddy); |
1389 | 1389 |
1390 gaim_contact_invalidate_priority_buddy(gaim_buddy_get_contact(buddy)); | 1390 purple_contact_invalidate_priority_buddy(purple_buddy_get_contact(buddy)); |
1391 | 1391 |
1392 gaim_blist_schedule_save(); | 1392 purple_blist_schedule_save(); |
1393 | 1393 |
1394 if (ops && ops->update) | 1394 if (ops && ops->update) |
1395 ops->update(gaimbuddylist, (GaimBlistNode*)buddy); | 1395 ops->update(purplebuddylist, (PurpleBlistNode*)buddy); |
1396 | 1396 |
1397 /* Signal that the buddy has been added */ | 1397 /* Signal that the buddy has been added */ |
1398 gaim_signal_emit(gaim_blist_get_handle(), "buddy-added", buddy); | 1398 purple_signal_emit(purple_blist_get_handle(), "buddy-added", buddy); |
1399 } | 1399 } |
1400 | 1400 |
1401 GaimContact *gaim_contact_new() | 1401 PurpleContact *purple_contact_new() |
1402 { | 1402 { |
1403 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1403 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1404 | 1404 |
1405 GaimContact *contact = g_new0(GaimContact, 1); | 1405 PurpleContact *contact = g_new0(PurpleContact, 1); |
1406 contact->totalsize = 0; | 1406 contact->totalsize = 0; |
1407 contact->currentsize = 0; | 1407 contact->currentsize = 0; |
1408 contact->online = 0; | 1408 contact->online = 0; |
1409 gaim_blist_node_initialize_settings((GaimBlistNode *)contact); | 1409 purple_blist_node_initialize_settings((PurpleBlistNode *)contact); |
1410 ((GaimBlistNode *)contact)->type = GAIM_BLIST_CONTACT_NODE; | 1410 ((PurpleBlistNode *)contact)->type = PURPLE_BLIST_CONTACT_NODE; |
1411 | 1411 |
1412 if (ops && ops->new_node) | 1412 if (ops && ops->new_node) |
1413 ops->new_node((GaimBlistNode *)contact); | 1413 ops->new_node((PurpleBlistNode *)contact); |
1414 | 1414 |
1415 GAIM_DBUS_REGISTER_POINTER(contact, GaimContact); | 1415 PURPLE_DBUS_REGISTER_POINTER(contact, PurpleContact); |
1416 return contact; | 1416 return contact; |
1417 } | 1417 } |
1418 | 1418 |
1419 void gaim_contact_set_alias(GaimContact *contact, const char *alias) | 1419 void purple_contact_set_alias(PurpleContact *contact, const char *alias) |
1420 { | 1420 { |
1421 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1421 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1422 char *old_alias; | 1422 char *old_alias; |
1423 | 1423 |
1424 g_return_if_fail(contact != NULL); | 1424 g_return_if_fail(contact != NULL); |
1425 | 1425 |
1426 old_alias = contact->alias; | 1426 old_alias = contact->alias; |
1428 if ((alias != NULL) && (*alias != '\0')) | 1428 if ((alias != NULL) && (*alias != '\0')) |
1429 contact->alias = g_strdup(alias); | 1429 contact->alias = g_strdup(alias); |
1430 else | 1430 else |
1431 contact->alias = NULL; | 1431 contact->alias = NULL; |
1432 | 1432 |
1433 gaim_blist_schedule_save(); | 1433 purple_blist_schedule_save(); |
1434 | 1434 |
1435 if (ops && ops->update) | 1435 if (ops && ops->update) |
1436 ops->update(gaimbuddylist, (GaimBlistNode*)contact); | 1436 ops->update(purplebuddylist, (PurpleBlistNode*)contact); |
1437 | 1437 |
1438 gaim_signal_emit(gaim_blist_get_handle(), "blist-node-aliased", | 1438 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased", |
1439 contact, old_alias); | 1439 contact, old_alias); |
1440 g_free(old_alias); | 1440 g_free(old_alias); |
1441 } | 1441 } |
1442 | 1442 |
1443 const char *gaim_contact_get_alias(GaimContact* contact) | 1443 const char *purple_contact_get_alias(PurpleContact* contact) |
1444 { | 1444 { |
1445 g_return_val_if_fail(contact != NULL, NULL); | 1445 g_return_val_if_fail(contact != NULL, NULL); |
1446 | 1446 |
1447 if (contact->alias) | 1447 if (contact->alias) |
1448 return contact->alias; | 1448 return contact->alias; |
1449 | 1449 |
1450 return gaim_buddy_get_alias(gaim_contact_get_priority_buddy(contact)); | 1450 return purple_buddy_get_alias(purple_contact_get_priority_buddy(contact)); |
1451 } | 1451 } |
1452 | 1452 |
1453 gboolean gaim_contact_on_account(GaimContact *c, GaimAccount *account) | 1453 gboolean purple_contact_on_account(PurpleContact *c, PurpleAccount *account) |
1454 { | 1454 { |
1455 GaimBlistNode *bnode, *cnode = (GaimBlistNode *) c; | 1455 PurpleBlistNode *bnode, *cnode = (PurpleBlistNode *) c; |
1456 | 1456 |
1457 g_return_val_if_fail(c != NULL, FALSE); | 1457 g_return_val_if_fail(c != NULL, FALSE); |
1458 g_return_val_if_fail(account != NULL, FALSE); | 1458 g_return_val_if_fail(account != NULL, FALSE); |
1459 | 1459 |
1460 for (bnode = cnode->child; bnode; bnode = bnode->next) { | 1460 for (bnode = cnode->child; bnode; bnode = bnode->next) { |
1461 GaimBuddy *buddy; | 1461 PurpleBuddy *buddy; |
1462 | 1462 |
1463 if (! GAIM_BLIST_NODE_IS_BUDDY(bnode)) | 1463 if (! PURPLE_BLIST_NODE_IS_BUDDY(bnode)) |
1464 continue; | 1464 continue; |
1465 | 1465 |
1466 buddy = (GaimBuddy *)bnode; | 1466 buddy = (PurpleBuddy *)bnode; |
1467 if (buddy->account == account) | 1467 if (buddy->account == account) |
1468 return TRUE; | 1468 return TRUE; |
1469 } | 1469 } |
1470 return FALSE; | 1470 return FALSE; |
1471 } | 1471 } |
1472 | 1472 |
1473 void gaim_contact_invalidate_priority_buddy(GaimContact *contact) | 1473 void purple_contact_invalidate_priority_buddy(PurpleContact *contact) |
1474 { | 1474 { |
1475 g_return_if_fail(contact != NULL); | 1475 g_return_if_fail(contact != NULL); |
1476 | 1476 |
1477 contact->priority_valid = FALSE; | 1477 contact->priority_valid = FALSE; |
1478 } | 1478 } |
1479 | 1479 |
1480 GaimGroup *gaim_group_new(const char *name) | 1480 PurpleGroup *purple_group_new(const char *name) |
1481 { | 1481 { |
1482 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1482 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1483 GaimGroup *group; | 1483 PurpleGroup *group; |
1484 | 1484 |
1485 g_return_val_if_fail(name != NULL, NULL); | 1485 g_return_val_if_fail(name != NULL, NULL); |
1486 g_return_val_if_fail(*name != '\0', NULL); | 1486 g_return_val_if_fail(*name != '\0', NULL); |
1487 | 1487 |
1488 group = gaim_find_group(name); | 1488 group = purple_find_group(name); |
1489 if (group != NULL) | 1489 if (group != NULL) |
1490 return group; | 1490 return group; |
1491 | 1491 |
1492 group = g_new0(GaimGroup, 1); | 1492 group = g_new0(PurpleGroup, 1); |
1493 group->name = g_strdup(name); | 1493 group->name = g_strdup(name); |
1494 group->totalsize = 0; | 1494 group->totalsize = 0; |
1495 group->currentsize = 0; | 1495 group->currentsize = 0; |
1496 group->online = 0; | 1496 group->online = 0; |
1497 gaim_blist_node_initialize_settings((GaimBlistNode *)group); | 1497 purple_blist_node_initialize_settings((PurpleBlistNode *)group); |
1498 ((GaimBlistNode *)group)->type = GAIM_BLIST_GROUP_NODE; | 1498 ((PurpleBlistNode *)group)->type = PURPLE_BLIST_GROUP_NODE; |
1499 | 1499 |
1500 if (ops && ops->new_node) | 1500 if (ops && ops->new_node) |
1501 ops->new_node((GaimBlistNode *)group); | 1501 ops->new_node((PurpleBlistNode *)group); |
1502 | 1502 |
1503 GAIM_DBUS_REGISTER_POINTER(group, GaimGroup); | 1503 PURPLE_DBUS_REGISTER_POINTER(group, PurpleGroup); |
1504 return group; | 1504 return group; |
1505 } | 1505 } |
1506 | 1506 |
1507 void gaim_blist_add_contact(GaimContact *contact, GaimGroup *group, GaimBlistNode *node) | 1507 void purple_blist_add_contact(PurpleContact *contact, PurpleGroup *group, PurpleBlistNode *node) |
1508 { | 1508 { |
1509 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1509 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1510 GaimGroup *g; | 1510 PurpleGroup *g; |
1511 GaimBlistNode *gnode, *cnode, *bnode; | 1511 PurpleBlistNode *gnode, *cnode, *bnode; |
1512 | 1512 |
1513 g_return_if_fail(contact != NULL); | 1513 g_return_if_fail(contact != NULL); |
1514 g_return_if_fail(GAIM_BLIST_NODE_IS_CONTACT((GaimBlistNode*)contact)); | 1514 g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT((PurpleBlistNode*)contact)); |
1515 | 1515 |
1516 if ((GaimBlistNode*)contact == node) | 1516 if ((PurpleBlistNode*)contact == node) |
1517 return; | 1517 return; |
1518 | 1518 |
1519 if (node && (GAIM_BLIST_NODE_IS_CONTACT(node) || | 1519 if (node && (PURPLE_BLIST_NODE_IS_CONTACT(node) || |
1520 GAIM_BLIST_NODE_IS_CHAT(node))) | 1520 PURPLE_BLIST_NODE_IS_CHAT(node))) |
1521 g = (GaimGroup*)node->parent; | 1521 g = (PurpleGroup*)node->parent; |
1522 else if (group) | 1522 else if (group) |
1523 g = group; | 1523 g = group; |
1524 else { | 1524 else { |
1525 g = gaim_group_new(_("Buddies")); | 1525 g = purple_group_new(_("Buddies")); |
1526 gaim_blist_add_group(g, | 1526 purple_blist_add_group(g, |
1527 gaim_blist_get_last_sibling(gaimbuddylist->root)); | 1527 purple_blist_get_last_sibling(purplebuddylist->root)); |
1528 } | 1528 } |
1529 | 1529 |
1530 gnode = (GaimBlistNode*)g; | 1530 gnode = (PurpleBlistNode*)g; |
1531 cnode = (GaimBlistNode*)contact; | 1531 cnode = (PurpleBlistNode*)contact; |
1532 | 1532 |
1533 if (cnode->parent) { | 1533 if (cnode->parent) { |
1534 if (cnode->parent->child == cnode) | 1534 if (cnode->parent->child == cnode) |
1535 cnode->parent->child = cnode->next; | 1535 cnode->parent->child = cnode->next; |
1536 if (cnode->prev) | 1536 if (cnode->prev) |
1539 cnode->next->prev = cnode->prev; | 1539 cnode->next->prev = cnode->prev; |
1540 | 1540 |
1541 if (cnode->parent != gnode) { | 1541 if (cnode->parent != gnode) { |
1542 bnode = cnode->child; | 1542 bnode = cnode->child; |
1543 while (bnode) { | 1543 while (bnode) { |
1544 GaimBlistNode *next_bnode = bnode->next; | 1544 PurpleBlistNode *next_bnode = bnode->next; |
1545 GaimBuddy *b = (GaimBuddy*)bnode; | 1545 PurpleBuddy *b = (PurpleBuddy*)bnode; |
1546 | 1546 |
1547 struct _gaim_hbuddy *hb = g_new(struct _gaim_hbuddy, 1); | 1547 struct _purple_hbuddy *hb = g_new(struct _purple_hbuddy, 1); |
1548 hb->name = g_strdup(gaim_normalize(b->account, b->name)); | 1548 hb->name = g_strdup(purple_normalize(b->account, b->name)); |
1549 hb->account = b->account; | 1549 hb->account = b->account; |
1550 hb->group = cnode->parent; | 1550 hb->group = cnode->parent; |
1551 | 1551 |
1552 g_hash_table_remove(gaimbuddylist->buddies, hb); | 1552 g_hash_table_remove(purplebuddylist->buddies, hb); |
1553 | 1553 |
1554 if (!gaim_find_buddy_in_group(b->account, b->name, g)) { | 1554 if (!purple_find_buddy_in_group(b->account, b->name, g)) { |
1555 hb->group = gnode; | 1555 hb->group = gnode; |
1556 g_hash_table_replace(gaimbuddylist->buddies, hb, b); | 1556 g_hash_table_replace(purplebuddylist->buddies, hb, b); |
1557 | 1557 |
1558 if (b->account->gc) | 1558 if (b->account->gc) |
1559 serv_move_buddy(b, (GaimGroup *)cnode->parent, g); | 1559 serv_move_buddy(b, (PurpleGroup *)cnode->parent, g); |
1560 } else { | 1560 } else { |
1561 gboolean empty_contact = FALSE; | 1561 gboolean empty_contact = FALSE; |
1562 | 1562 |
1563 /* this buddy already exists in the group, so we're | 1563 /* this buddy already exists in the group, so we're |
1564 * gonna delete it instead */ | 1564 * gonna delete it instead */ |
1565 g_free(hb->name); | 1565 g_free(hb->name); |
1566 g_free(hb); | 1566 g_free(hb); |
1567 if (b->account->gc) | 1567 if (b->account->gc) |
1568 gaim_account_remove_buddy(b->account, b, (GaimGroup *)cnode->parent); | 1568 purple_account_remove_buddy(b->account, b, (PurpleGroup *)cnode->parent); |
1569 | 1569 |
1570 if (!cnode->child->next) | 1570 if (!cnode->child->next) |
1571 empty_contact = TRUE; | 1571 empty_contact = TRUE; |
1572 gaim_blist_remove_buddy(b); | 1572 purple_blist_remove_buddy(b); |
1573 | 1573 |
1574 /** in gaim_blist_remove_buddy(), if the last buddy in a | 1574 /** in purple_blist_remove_buddy(), if the last buddy in a |
1575 * contact is removed, the contact is cleaned up and | 1575 * contact is removed, the contact is cleaned up and |
1576 * g_free'd, so we mustn't try to reference bnode->next */ | 1576 * g_free'd, so we mustn't try to reference bnode->next */ |
1577 if (empty_contact) | 1577 if (empty_contact) |
1578 return; | 1578 return; |
1579 } | 1579 } |
1580 bnode = next_bnode; | 1580 bnode = next_bnode; |
1581 } | 1581 } |
1582 } | 1582 } |
1583 | 1583 |
1584 if (contact->online > 0) | 1584 if (contact->online > 0) |
1585 ((GaimGroup*)cnode->parent)->online--; | 1585 ((PurpleGroup*)cnode->parent)->online--; |
1586 if (contact->currentsize > 0) | 1586 if (contact->currentsize > 0) |
1587 ((GaimGroup*)cnode->parent)->currentsize--; | 1587 ((PurpleGroup*)cnode->parent)->currentsize--; |
1588 ((GaimGroup*)cnode->parent)->totalsize--; | 1588 ((PurpleGroup*)cnode->parent)->totalsize--; |
1589 | 1589 |
1590 if (ops && ops->remove) | 1590 if (ops && ops->remove) |
1591 ops->remove(gaimbuddylist, cnode); | 1591 ops->remove(purplebuddylist, cnode); |
1592 | 1592 |
1593 gaim_blist_schedule_save(); | 1593 purple_blist_schedule_save(); |
1594 } | 1594 } |
1595 | 1595 |
1596 if (node && (GAIM_BLIST_NODE_IS_CONTACT(node) || | 1596 if (node && (PURPLE_BLIST_NODE_IS_CONTACT(node) || |
1597 GAIM_BLIST_NODE_IS_CHAT(node))) { | 1597 PURPLE_BLIST_NODE_IS_CHAT(node))) { |
1598 if (node->next) | 1598 if (node->next) |
1599 node->next->prev = cnode; | 1599 node->next->prev = cnode; |
1600 cnode->next = node->next; | 1600 cnode->next = node->next; |
1601 cnode->prev = node; | 1601 cnode->prev = node; |
1602 cnode->parent = node->parent; | 1602 cnode->parent = node->parent; |
1614 g->online++; | 1614 g->online++; |
1615 if (contact->currentsize > 0) | 1615 if (contact->currentsize > 0) |
1616 g->currentsize++; | 1616 g->currentsize++; |
1617 g->totalsize++; | 1617 g->totalsize++; |
1618 | 1618 |
1619 gaim_blist_schedule_save(); | 1619 purple_blist_schedule_save(); |
1620 | 1620 |
1621 if (ops && ops->update) | 1621 if (ops && ops->update) |
1622 { | 1622 { |
1623 if (cnode->child) | 1623 if (cnode->child) |
1624 ops->update(gaimbuddylist, cnode); | 1624 ops->update(purplebuddylist, cnode); |
1625 | 1625 |
1626 for (bnode = cnode->child; bnode; bnode = bnode->next) | 1626 for (bnode = cnode->child; bnode; bnode = bnode->next) |
1627 ops->update(gaimbuddylist, bnode); | 1627 ops->update(purplebuddylist, bnode); |
1628 } | 1628 } |
1629 } | 1629 } |
1630 | 1630 |
1631 void gaim_blist_merge_contact(GaimContact *source, GaimBlistNode *node) | 1631 void purple_blist_merge_contact(PurpleContact *source, PurpleBlistNode *node) |
1632 { | 1632 { |
1633 GaimBlistNode *sourcenode = (GaimBlistNode*)source; | 1633 PurpleBlistNode *sourcenode = (PurpleBlistNode*)source; |
1634 GaimBlistNode *targetnode; | 1634 PurpleBlistNode *targetnode; |
1635 GaimBlistNode *prev, *cur, *next; | 1635 PurpleBlistNode *prev, *cur, *next; |
1636 GaimContact *target; | 1636 PurpleContact *target; |
1637 | 1637 |
1638 g_return_if_fail(source != NULL); | 1638 g_return_if_fail(source != NULL); |
1639 g_return_if_fail(node != NULL); | 1639 g_return_if_fail(node != NULL); |
1640 | 1640 |
1641 if (GAIM_BLIST_NODE_IS_CONTACT(node)) { | 1641 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
1642 target = (GaimContact *)node; | 1642 target = (PurpleContact *)node; |
1643 prev = gaim_blist_get_last_child(node); | 1643 prev = purple_blist_get_last_child(node); |
1644 } else if (GAIM_BLIST_NODE_IS_BUDDY(node)) { | 1644 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1645 target = (GaimContact *)node->parent; | 1645 target = (PurpleContact *)node->parent; |
1646 prev = node; | 1646 prev = node; |
1647 } else { | 1647 } else { |
1648 return; | 1648 return; |
1649 } | 1649 } |
1650 | 1650 |
1651 if (source == target || !target) | 1651 if (source == target || !target) |
1652 return; | 1652 return; |
1653 | 1653 |
1654 targetnode = (GaimBlistNode *)target; | 1654 targetnode = (PurpleBlistNode *)target; |
1655 next = sourcenode->child; | 1655 next = sourcenode->child; |
1656 | 1656 |
1657 while (next) { | 1657 while (next) { |
1658 cur = next; | 1658 cur = next; |
1659 next = cur->next; | 1659 next = cur->next; |
1660 if (GAIM_BLIST_NODE_IS_BUDDY(cur)) { | 1660 if (PURPLE_BLIST_NODE_IS_BUDDY(cur)) { |
1661 gaim_blist_add_buddy((GaimBuddy *)cur, target, NULL, prev); | 1661 purple_blist_add_buddy((PurpleBuddy *)cur, target, NULL, prev); |
1662 prev = cur; | 1662 prev = cur; |
1663 } | 1663 } |
1664 } | 1664 } |
1665 } | 1665 } |
1666 | 1666 |
1667 void gaim_blist_add_group(GaimGroup *group, GaimBlistNode *node) | 1667 void purple_blist_add_group(PurpleGroup *group, PurpleBlistNode *node) |
1668 { | 1668 { |
1669 GaimBlistUiOps *ops; | 1669 PurpleBlistUiOps *ops; |
1670 GaimBlistNode *gnode = (GaimBlistNode*)group; | 1670 PurpleBlistNode *gnode = (PurpleBlistNode*)group; |
1671 | 1671 |
1672 g_return_if_fail(group != NULL); | 1672 g_return_if_fail(group != NULL); |
1673 g_return_if_fail(GAIM_BLIST_NODE_IS_GROUP((GaimBlistNode *)group)); | 1673 g_return_if_fail(PURPLE_BLIST_NODE_IS_GROUP((PurpleBlistNode *)group)); |
1674 | 1674 |
1675 ops = gaim_blist_get_ui_ops(); | 1675 ops = purple_blist_get_ui_ops(); |
1676 | 1676 |
1677 if (!gaimbuddylist->root) { | 1677 if (!purplebuddylist->root) { |
1678 gaimbuddylist->root = gnode; | 1678 purplebuddylist->root = gnode; |
1679 return; | 1679 return; |
1680 } | 1680 } |
1681 | 1681 |
1682 /* if we're moving to overtop of ourselves, do nothing */ | 1682 /* if we're moving to overtop of ourselves, do nothing */ |
1683 if (gnode == node) | 1683 if (gnode == node) |
1684 return; | 1684 return; |
1685 | 1685 |
1686 if (gaim_find_group(group->name)) { | 1686 if (purple_find_group(group->name)) { |
1687 /* This is just being moved */ | 1687 /* This is just being moved */ |
1688 | 1688 |
1689 if (ops && ops->remove) | 1689 if (ops && ops->remove) |
1690 ops->remove(gaimbuddylist, (GaimBlistNode *)group); | 1690 ops->remove(purplebuddylist, (PurpleBlistNode *)group); |
1691 | 1691 |
1692 if (gnode == gaimbuddylist->root) | 1692 if (gnode == purplebuddylist->root) |
1693 gaimbuddylist->root = gnode->next; | 1693 purplebuddylist->root = gnode->next; |
1694 if (gnode->prev) | 1694 if (gnode->prev) |
1695 gnode->prev->next = gnode->next; | 1695 gnode->prev->next = gnode->next; |
1696 if (gnode->next) | 1696 if (gnode->next) |
1697 gnode->next->prev = gnode->prev; | 1697 gnode->next->prev = gnode->prev; |
1698 } | 1698 } |
1699 | 1699 |
1700 if (node && GAIM_BLIST_NODE_IS_GROUP(node)) { | 1700 if (node && PURPLE_BLIST_NODE_IS_GROUP(node)) { |
1701 gnode->next = node->next; | 1701 gnode->next = node->next; |
1702 gnode->prev = node; | 1702 gnode->prev = node; |
1703 if (node->next) | 1703 if (node->next) |
1704 node->next->prev = gnode; | 1704 node->next->prev = gnode; |
1705 node->next = gnode; | 1705 node->next = gnode; |
1706 } else { | 1706 } else { |
1707 if (gaimbuddylist->root) | 1707 if (purplebuddylist->root) |
1708 gaimbuddylist->root->prev = gnode; | 1708 purplebuddylist->root->prev = gnode; |
1709 gnode->next = gaimbuddylist->root; | 1709 gnode->next = purplebuddylist->root; |
1710 gnode->prev = NULL; | 1710 gnode->prev = NULL; |
1711 gaimbuddylist->root = gnode; | 1711 purplebuddylist->root = gnode; |
1712 } | 1712 } |
1713 | 1713 |
1714 gaim_blist_schedule_save(); | 1714 purple_blist_schedule_save(); |
1715 | 1715 |
1716 if (ops && ops->update) { | 1716 if (ops && ops->update) { |
1717 ops->update(gaimbuddylist, gnode); | 1717 ops->update(purplebuddylist, gnode); |
1718 for (node = gnode->child; node; node = node->next) | 1718 for (node = gnode->child; node; node = node->next) |
1719 ops->update(gaimbuddylist, node); | 1719 ops->update(purplebuddylist, node); |
1720 } | 1720 } |
1721 } | 1721 } |
1722 | 1722 |
1723 void gaim_blist_remove_contact(GaimContact *contact) | 1723 void purple_blist_remove_contact(PurpleContact *contact) |
1724 { | 1724 { |
1725 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1725 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1726 GaimBlistNode *node, *gnode; | 1726 PurpleBlistNode *node, *gnode; |
1727 | 1727 |
1728 g_return_if_fail(contact != NULL); | 1728 g_return_if_fail(contact != NULL); |
1729 | 1729 |
1730 node = (GaimBlistNode *)contact; | 1730 node = (PurpleBlistNode *)contact; |
1731 gnode = node->parent; | 1731 gnode = node->parent; |
1732 | 1732 |
1733 if (node->child) { | 1733 if (node->child) { |
1734 /* | 1734 /* |
1735 * If this contact has children then remove them. When the last | 1735 * If this contact has children then remove them. When the last |
1736 * buddy is removed from the contact, the contact is automatically | 1736 * buddy is removed from the contact, the contact is automatically |
1737 * deleted. | 1737 * deleted. |
1738 */ | 1738 */ |
1739 while (node->child->next) { | 1739 while (node->child->next) { |
1740 gaim_blist_remove_buddy((GaimBuddy*)node->child); | 1740 purple_blist_remove_buddy((PurpleBuddy*)node->child); |
1741 } | 1741 } |
1742 /* | 1742 /* |
1743 * Remove the last buddy and trigger the deletion of the contact. | 1743 * Remove the last buddy and trigger the deletion of the contact. |
1744 * It would probably be cleaner if contact-deletion was done after | 1744 * It would probably be cleaner if contact-deletion was done after |
1745 * a timeout? Or if it had to be done manually, like below? | 1745 * a timeout? Or if it had to be done manually, like below? |
1746 */ | 1746 */ |
1747 gaim_blist_remove_buddy((GaimBuddy*)node->child); | 1747 purple_blist_remove_buddy((PurpleBuddy*)node->child); |
1748 } else { | 1748 } else { |
1749 /* Remove the node from its parent */ | 1749 /* Remove the node from its parent */ |
1750 if (gnode->child == node) | 1750 if (gnode->child == node) |
1751 gnode->child = node->next; | 1751 gnode->child = node->next; |
1752 if (node->prev) | 1752 if (node->prev) |
1753 node->prev->next = node->next; | 1753 node->prev->next = node->next; |
1754 if (node->next) | 1754 if (node->next) |
1755 node->next->prev = node->prev; | 1755 node->next->prev = node->prev; |
1756 | 1756 |
1757 gaim_blist_schedule_save(); | 1757 purple_blist_schedule_save(); |
1758 | 1758 |
1759 /* Update the UI */ | 1759 /* Update the UI */ |
1760 if (ops && ops->remove) | 1760 if (ops && ops->remove) |
1761 ops->remove(gaimbuddylist, node); | 1761 ops->remove(purplebuddylist, node); |
1762 | 1762 |
1763 /* Delete the node */ | 1763 /* Delete the node */ |
1764 g_hash_table_destroy(contact->node.settings); | 1764 g_hash_table_destroy(contact->node.settings); |
1765 GAIM_DBUS_UNREGISTER_POINTER(contact); | 1765 PURPLE_DBUS_UNREGISTER_POINTER(contact); |
1766 g_free(contact); | 1766 g_free(contact); |
1767 } | 1767 } |
1768 } | 1768 } |
1769 | 1769 |
1770 void gaim_blist_remove_buddy(GaimBuddy *buddy) | 1770 void purple_blist_remove_buddy(PurpleBuddy *buddy) |
1771 { | 1771 { |
1772 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1772 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1773 GaimBlistNode *node, *cnode, *gnode; | 1773 PurpleBlistNode *node, *cnode, *gnode; |
1774 GaimContact *contact; | 1774 PurpleContact *contact; |
1775 GaimGroup *group; | 1775 PurpleGroup *group; |
1776 struct _gaim_hbuddy hb; | 1776 struct _purple_hbuddy hb; |
1777 | 1777 |
1778 g_return_if_fail(buddy != NULL); | 1778 g_return_if_fail(buddy != NULL); |
1779 | 1779 |
1780 node = (GaimBlistNode *)buddy; | 1780 node = (PurpleBlistNode *)buddy; |
1781 cnode = node->parent; | 1781 cnode = node->parent; |
1782 gnode = cnode->parent; | 1782 gnode = cnode->parent; |
1783 contact = (GaimContact *)cnode; | 1783 contact = (PurpleContact *)cnode; |
1784 group = (GaimGroup *)gnode; | 1784 group = (PurpleGroup *)gnode; |
1785 | 1785 |
1786 /* Delete any buddy icon. */ | 1786 /* Delete any buddy icon. */ |
1787 gaim_buddy_icon_uncache(buddy); | 1787 purple_buddy_icon_uncache(buddy); |
1788 | 1788 |
1789 /* Remove the node from its parent */ | 1789 /* Remove the node from its parent */ |
1790 if (node->prev) | 1790 if (node->prev) |
1791 node->prev->next = node->next; | 1791 node->prev->next = node->next; |
1792 if (node->next) | 1792 if (node->next) |
1793 node->next->prev = node->prev; | 1793 node->next->prev = node->prev; |
1794 if (cnode->child == node) | 1794 if (cnode->child == node) |
1795 cnode->child = node->next; | 1795 cnode->child = node->next; |
1796 | 1796 |
1797 /* Adjust size counts */ | 1797 /* Adjust size counts */ |
1798 if (GAIM_BUDDY_IS_ONLINE(buddy)) { | 1798 if (PURPLE_BUDDY_IS_ONLINE(buddy)) { |
1799 contact->online--; | 1799 contact->online--; |
1800 if (contact->online == 0) | 1800 if (contact->online == 0) |
1801 group->online--; | 1801 group->online--; |
1802 } | 1802 } |
1803 if (gaim_account_is_connected(buddy->account)) { | 1803 if (purple_account_is_connected(buddy->account)) { |
1804 contact->currentsize--; | 1804 contact->currentsize--; |
1805 if (contact->currentsize == 0) | 1805 if (contact->currentsize == 0) |
1806 group->currentsize--; | 1806 group->currentsize--; |
1807 } | 1807 } |
1808 contact->totalsize--; | 1808 contact->totalsize--; |
1809 | 1809 |
1810 gaim_blist_schedule_save(); | 1810 purple_blist_schedule_save(); |
1811 | 1811 |
1812 /* Re-sort the contact */ | 1812 /* Re-sort the contact */ |
1813 if (cnode->child && contact->priority == buddy) { | 1813 if (cnode->child && contact->priority == buddy) { |
1814 gaim_contact_invalidate_priority_buddy(contact); | 1814 purple_contact_invalidate_priority_buddy(contact); |
1815 if (ops && ops->update) | 1815 if (ops && ops->update) |
1816 ops->update(gaimbuddylist, cnode); | 1816 ops->update(purplebuddylist, cnode); |
1817 } | 1817 } |
1818 | 1818 |
1819 /* Remove this buddy from the buddies hash table */ | 1819 /* Remove this buddy from the buddies hash table */ |
1820 hb.name = g_strdup(gaim_normalize(buddy->account, buddy->name)); | 1820 hb.name = g_strdup(purple_normalize(buddy->account, buddy->name)); |
1821 hb.account = buddy->account; | 1821 hb.account = buddy->account; |
1822 hb.group = ((GaimBlistNode*)buddy)->parent->parent; | 1822 hb.group = ((PurpleBlistNode*)buddy)->parent->parent; |
1823 g_hash_table_remove(gaimbuddylist->buddies, &hb); | 1823 g_hash_table_remove(purplebuddylist->buddies, &hb); |
1824 g_free(hb.name); | 1824 g_free(hb.name); |
1825 | 1825 |
1826 /* Update the UI */ | 1826 /* Update the UI */ |
1827 if (ops && ops->remove) | 1827 if (ops && ops->remove) |
1828 ops->remove(gaimbuddylist, node); | 1828 ops->remove(purplebuddylist, node); |
1829 | 1829 |
1830 /* Signal that the buddy has been removed before freeing the memory for it */ | 1830 /* Signal that the buddy has been removed before freeing the memory for it */ |
1831 gaim_signal_emit(gaim_blist_get_handle(), "buddy-removed", buddy); | 1831 purple_signal_emit(purple_blist_get_handle(), "buddy-removed", buddy); |
1832 | 1832 |
1833 /* Delete the node */ | 1833 /* Delete the node */ |
1834 if (buddy->icon != NULL) | 1834 if (buddy->icon != NULL) |
1835 gaim_buddy_icon_unref(buddy->icon); | 1835 purple_buddy_icon_unref(buddy->icon); |
1836 g_hash_table_destroy(buddy->node.settings); | 1836 g_hash_table_destroy(buddy->node.settings); |
1837 gaim_presence_remove_buddy(buddy->presence, buddy); | 1837 purple_presence_remove_buddy(buddy->presence, buddy); |
1838 gaim_presence_destroy(buddy->presence); | 1838 purple_presence_destroy(buddy->presence); |
1839 g_free(buddy->name); | 1839 g_free(buddy->name); |
1840 g_free(buddy->alias); | 1840 g_free(buddy->alias); |
1841 g_free(buddy->server_alias); | 1841 g_free(buddy->server_alias); |
1842 | 1842 |
1843 GAIM_DBUS_UNREGISTER_POINTER(buddy); | 1843 PURPLE_DBUS_UNREGISTER_POINTER(buddy); |
1844 g_free(buddy); | 1844 g_free(buddy); |
1845 | 1845 |
1846 /* FIXME: Once GaimBuddy is a GObject, timeout callbacks can | 1846 /* FIXME: Once PurpleBuddy is a GObject, timeout callbacks can |
1847 * g_object_ref() it when connecting the callback and | 1847 * g_object_ref() it when connecting the callback and |
1848 * g_object_unref() it in the handler. That way, it won't | 1848 * g_object_unref() it in the handler. That way, it won't |
1849 * get freed while the timeout is pending and this line can | 1849 * get freed while the timeout is pending and this line can |
1850 * be removed. */ | 1850 * be removed. */ |
1851 while (g_source_remove_by_user_data((gpointer *)buddy)); | 1851 while (g_source_remove_by_user_data((gpointer *)buddy)); |
1852 | 1852 |
1853 /* If the contact is empty then remove it */ | 1853 /* If the contact is empty then remove it */ |
1854 if (!cnode->child) | 1854 if (!cnode->child) |
1855 gaim_blist_remove_contact(contact); | 1855 purple_blist_remove_contact(contact); |
1856 } | 1856 } |
1857 | 1857 |
1858 void gaim_blist_remove_chat(GaimChat *chat) | 1858 void purple_blist_remove_chat(PurpleChat *chat) |
1859 { | 1859 { |
1860 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1860 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1861 GaimBlistNode *node, *gnode; | 1861 PurpleBlistNode *node, *gnode; |
1862 GaimGroup *group; | 1862 PurpleGroup *group; |
1863 | 1863 |
1864 g_return_if_fail(chat != NULL); | 1864 g_return_if_fail(chat != NULL); |
1865 | 1865 |
1866 node = (GaimBlistNode *)chat; | 1866 node = (PurpleBlistNode *)chat; |
1867 gnode = node->parent; | 1867 gnode = node->parent; |
1868 group = (GaimGroup *)gnode; | 1868 group = (PurpleGroup *)gnode; |
1869 | 1869 |
1870 if (gnode != NULL) | 1870 if (gnode != NULL) |
1871 { | 1871 { |
1872 /* Remove the node from its parent */ | 1872 /* Remove the node from its parent */ |
1873 if (gnode->child == node) | 1873 if (gnode->child == node) |
1876 node->prev->next = node->next; | 1876 node->prev->next = node->next; |
1877 if (node->next) | 1877 if (node->next) |
1878 node->next->prev = node->prev; | 1878 node->next->prev = node->prev; |
1879 | 1879 |
1880 /* Adjust size counts */ | 1880 /* Adjust size counts */ |
1881 if (gaim_account_is_connected(chat->account)) { | 1881 if (purple_account_is_connected(chat->account)) { |
1882 group->online--; | 1882 group->online--; |
1883 group->currentsize--; | 1883 group->currentsize--; |
1884 } | 1884 } |
1885 group->totalsize--; | 1885 group->totalsize--; |
1886 | 1886 |
1887 gaim_blist_schedule_save(); | 1887 purple_blist_schedule_save(); |
1888 } | 1888 } |
1889 | 1889 |
1890 /* Update the UI */ | 1890 /* Update the UI */ |
1891 if (ops && ops->remove) | 1891 if (ops && ops->remove) |
1892 ops->remove(gaimbuddylist, node); | 1892 ops->remove(purplebuddylist, node); |
1893 | 1893 |
1894 /* Delete the node */ | 1894 /* Delete the node */ |
1895 g_hash_table_destroy(chat->components); | 1895 g_hash_table_destroy(chat->components); |
1896 g_hash_table_destroy(chat->node.settings); | 1896 g_hash_table_destroy(chat->node.settings); |
1897 g_free(chat->alias); | 1897 g_free(chat->alias); |
1898 GAIM_DBUS_UNREGISTER_POINTER(chat); | 1898 PURPLE_DBUS_UNREGISTER_POINTER(chat); |
1899 g_free(chat); | 1899 g_free(chat); |
1900 } | 1900 } |
1901 | 1901 |
1902 void gaim_blist_remove_group(GaimGroup *group) | 1902 void purple_blist_remove_group(PurpleGroup *group) |
1903 { | 1903 { |
1904 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 1904 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
1905 GaimBlistNode *node; | 1905 PurpleBlistNode *node; |
1906 GList *l; | 1906 GList *l; |
1907 | 1907 |
1908 g_return_if_fail(group != NULL); | 1908 g_return_if_fail(group != NULL); |
1909 | 1909 |
1910 node = (GaimBlistNode *)group; | 1910 node = (PurpleBlistNode *)group; |
1911 | 1911 |
1912 /* Make sure the group is empty */ | 1912 /* Make sure the group is empty */ |
1913 if (node->child) | 1913 if (node->child) |
1914 return; | 1914 return; |
1915 | 1915 |
1916 /* Remove the node from its parent */ | 1916 /* Remove the node from its parent */ |
1917 if (gaimbuddylist->root == node) | 1917 if (purplebuddylist->root == node) |
1918 gaimbuddylist->root = node->next; | 1918 purplebuddylist->root = node->next; |
1919 if (node->prev) | 1919 if (node->prev) |
1920 node->prev->next = node->next; | 1920 node->prev->next = node->next; |
1921 if (node->next) | 1921 if (node->next) |
1922 node->next->prev = node->prev; | 1922 node->next->prev = node->prev; |
1923 | 1923 |
1924 gaim_blist_schedule_save(); | 1924 purple_blist_schedule_save(); |
1925 | 1925 |
1926 /* Update the UI */ | 1926 /* Update the UI */ |
1927 if (ops && ops->remove) | 1927 if (ops && ops->remove) |
1928 ops->remove(gaimbuddylist, node); | 1928 ops->remove(purplebuddylist, node); |
1929 | 1929 |
1930 /* Remove the group from all accounts that are online */ | 1930 /* Remove the group from all accounts that are online */ |
1931 for (l = gaim_connections_get_all(); l != NULL; l = l->next) | 1931 for (l = purple_connections_get_all(); l != NULL; l = l->next) |
1932 { | 1932 { |
1933 GaimConnection *gc = (GaimConnection *)l->data; | 1933 PurpleConnection *gc = (PurpleConnection *)l->data; |
1934 | 1934 |
1935 if (gaim_connection_get_state(gc) == GAIM_CONNECTED) | 1935 if (purple_connection_get_state(gc) == PURPLE_CONNECTED) |
1936 gaim_account_remove_group(gaim_connection_get_account(gc), group); | 1936 purple_account_remove_group(purple_connection_get_account(gc), group); |
1937 } | 1937 } |
1938 | 1938 |
1939 /* Delete the node */ | 1939 /* Delete the node */ |
1940 g_hash_table_destroy(group->node.settings); | 1940 g_hash_table_destroy(group->node.settings); |
1941 g_free(group->name); | 1941 g_free(group->name); |
1942 GAIM_DBUS_UNREGISTER_POINTER(group); | 1942 PURPLE_DBUS_UNREGISTER_POINTER(group); |
1943 g_free(group); | 1943 g_free(group); |
1944 } | 1944 } |
1945 | 1945 |
1946 GaimBuddy *gaim_contact_get_priority_buddy(GaimContact *contact) | 1946 PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact) |
1947 { | 1947 { |
1948 g_return_val_if_fail(contact != NULL, NULL); | 1948 g_return_val_if_fail(contact != NULL, NULL); |
1949 | 1949 |
1950 if (!contact->priority_valid) | 1950 if (!contact->priority_valid) |
1951 gaim_contact_compute_priority_buddy(contact); | 1951 purple_contact_compute_priority_buddy(contact); |
1952 | 1952 |
1953 return contact->priority; | 1953 return contact->priority; |
1954 } | 1954 } |
1955 | 1955 |
1956 const char *gaim_buddy_get_alias_only(GaimBuddy *buddy) | 1956 const char *purple_buddy_get_alias_only(PurpleBuddy *buddy) |
1957 { | 1957 { |
1958 g_return_val_if_fail(buddy != NULL, NULL); | 1958 g_return_val_if_fail(buddy != NULL, NULL); |
1959 | 1959 |
1960 if ((buddy->alias != NULL) && (*buddy->alias != '\0')) { | 1960 if ((buddy->alias != NULL) && (*buddy->alias != '\0')) { |
1961 return buddy->alias; | 1961 return buddy->alias; |
1967 | 1967 |
1968 return NULL; | 1968 return NULL; |
1969 } | 1969 } |
1970 | 1970 |
1971 | 1971 |
1972 const char *gaim_buddy_get_contact_alias(GaimBuddy *buddy) | 1972 const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy) |
1973 { | 1973 { |
1974 GaimContact *c; | 1974 PurpleContact *c; |
1975 | 1975 |
1976 g_return_val_if_fail(buddy != NULL, NULL); | 1976 g_return_val_if_fail(buddy != NULL, NULL); |
1977 | 1977 |
1978 /* Search for an alias for the buddy. In order of precedence: */ | 1978 /* Search for an alias for the buddy. In order of precedence: */ |
1979 /* The buddy alias */ | 1979 /* The buddy alias */ |
1980 if (buddy->alias != NULL) | 1980 if (buddy->alias != NULL) |
1981 return buddy->alias; | 1981 return buddy->alias; |
1982 | 1982 |
1983 /* The contact alias */ | 1983 /* The contact alias */ |
1984 c = gaim_buddy_get_contact(buddy); | 1984 c = purple_buddy_get_contact(buddy); |
1985 if ((c != NULL) && (c->alias != NULL)) | 1985 if ((c != NULL) && (c->alias != NULL)) |
1986 return c->alias; | 1986 return c->alias; |
1987 | 1987 |
1988 /* The server alias */ | 1988 /* The server alias */ |
1989 if ((buddy->server_alias) && (*buddy->server_alias)) | 1989 if ((buddy->server_alias) && (*buddy->server_alias)) |
1992 /* The buddy's user name (i.e. no alias) */ | 1992 /* The buddy's user name (i.e. no alias) */ |
1993 return buddy->name; | 1993 return buddy->name; |
1994 } | 1994 } |
1995 | 1995 |
1996 | 1996 |
1997 const char *gaim_buddy_get_alias(GaimBuddy *buddy) | 1997 const char *purple_buddy_get_alias(PurpleBuddy *buddy) |
1998 { | 1998 { |
1999 g_return_val_if_fail(buddy != NULL, NULL); | 1999 g_return_val_if_fail(buddy != NULL, NULL); |
2000 | 2000 |
2001 /* Search for an alias for the buddy. In order of precedence: */ | 2001 /* Search for an alias for the buddy. In order of precedence: */ |
2002 /* The buddy alias */ | 2002 /* The buddy alias */ |
2009 | 2009 |
2010 /* The buddy's user name (i.e. no alias) */ | 2010 /* The buddy's user name (i.e. no alias) */ |
2011 return buddy->name; | 2011 return buddy->name; |
2012 } | 2012 } |
2013 | 2013 |
2014 const char *gaim_buddy_get_server_alias(GaimBuddy *buddy) | 2014 const char *purple_buddy_get_server_alias(PurpleBuddy *buddy) |
2015 { | 2015 { |
2016 g_return_val_if_fail(buddy != NULL, NULL); | 2016 g_return_val_if_fail(buddy != NULL, NULL); |
2017 | 2017 |
2018 if ((buddy->server_alias) && (*buddy->server_alias)) | 2018 if ((buddy->server_alias) && (*buddy->server_alias)) |
2019 return buddy->server_alias; | 2019 return buddy->server_alias; |
2020 | 2020 |
2021 return NULL; | 2021 return NULL; |
2022 } | 2022 } |
2023 | 2023 |
2024 const char *gaim_buddy_get_local_alias(GaimBuddy *buddy) | 2024 const char *purple_buddy_get_local_alias(PurpleBuddy *buddy) |
2025 { | 2025 { |
2026 GaimContact *c; | 2026 PurpleContact *c; |
2027 | 2027 |
2028 g_return_val_if_fail(buddy != NULL, NULL); | 2028 g_return_val_if_fail(buddy != NULL, NULL); |
2029 | 2029 |
2030 /* Search for an alias for the buddy. In order of precedence: */ | 2030 /* Search for an alias for the buddy. In order of precedence: */ |
2031 /* The buddy alias */ | 2031 /* The buddy alias */ |
2032 if (buddy->alias != NULL) | 2032 if (buddy->alias != NULL) |
2033 return buddy->alias; | 2033 return buddy->alias; |
2034 | 2034 |
2035 /* The contact alias */ | 2035 /* The contact alias */ |
2036 c = gaim_buddy_get_contact(buddy); | 2036 c = purple_buddy_get_contact(buddy); |
2037 if ((c != NULL) && (c->alias != NULL)) | 2037 if ((c != NULL) && (c->alias != NULL)) |
2038 return c->alias; | 2038 return c->alias; |
2039 | 2039 |
2040 /* The buddy's user name (i.e. no alias) */ | 2040 /* The buddy's user name (i.e. no alias) */ |
2041 return buddy->name; | 2041 return buddy->name; |
2042 } | 2042 } |
2043 | 2043 |
2044 const char *gaim_chat_get_name(GaimChat *chat) | 2044 const char *purple_chat_get_name(PurpleChat *chat) |
2045 { | 2045 { |
2046 struct proto_chat_entry *pce; | 2046 struct proto_chat_entry *pce; |
2047 GList *parts; | 2047 GList *parts; |
2048 char *ret; | 2048 char *ret; |
2049 | 2049 |
2050 g_return_val_if_fail(chat != NULL, NULL); | 2050 g_return_val_if_fail(chat != NULL, NULL); |
2051 | 2051 |
2052 if ((chat->alias != NULL) && (*chat->alias != '\0')) | 2052 if ((chat->alias != NULL) && (*chat->alias != '\0')) |
2053 return chat->alias; | 2053 return chat->alias; |
2054 | 2054 |
2055 parts = GAIM_PLUGIN_PROTOCOL_INFO(chat->account->gc->prpl)->chat_info(chat->account->gc); | 2055 parts = PURPLE_PLUGIN_PROTOCOL_INFO(chat->account->gc->prpl)->chat_info(chat->account->gc); |
2056 pce = parts->data; | 2056 pce = parts->data; |
2057 ret = g_hash_table_lookup(chat->components, pce->identifier); | 2057 ret = g_hash_table_lookup(chat->components, pce->identifier); |
2058 g_list_foreach(parts, (GFunc)g_free, NULL); | 2058 g_list_foreach(parts, (GFunc)g_free, NULL); |
2059 g_list_free(parts); | 2059 g_list_free(parts); |
2060 | 2060 |
2061 return ret; | 2061 return ret; |
2062 } | 2062 } |
2063 | 2063 |
2064 GaimBuddy *gaim_find_buddy(GaimAccount *account, const char *name) | 2064 PurpleBuddy *purple_find_buddy(PurpleAccount *account, const char *name) |
2065 { | 2065 { |
2066 GaimBuddy *buddy; | 2066 PurpleBuddy *buddy; |
2067 struct _gaim_hbuddy hb; | 2067 struct _purple_hbuddy hb; |
2068 GaimBlistNode *group; | 2068 PurpleBlistNode *group; |
2069 | 2069 |
2070 g_return_val_if_fail(gaimbuddylist != NULL, NULL); | 2070 g_return_val_if_fail(purplebuddylist != NULL, NULL); |
2071 g_return_val_if_fail(account != NULL, NULL); | 2071 g_return_val_if_fail(account != NULL, NULL); |
2072 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); | 2072 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); |
2073 | 2073 |
2074 hb.account = account; | 2074 hb.account = account; |
2075 hb.name = g_strdup(gaim_normalize(account, name)); | 2075 hb.name = g_strdup(purple_normalize(account, name)); |
2076 | 2076 |
2077 for (group = gaimbuddylist->root; group; group = group->next) { | 2077 for (group = purplebuddylist->root; group; group = group->next) { |
2078 hb.group = group; | 2078 hb.group = group; |
2079 if ((buddy = g_hash_table_lookup(gaimbuddylist->buddies, &hb))) { | 2079 if ((buddy = g_hash_table_lookup(purplebuddylist->buddies, &hb))) { |
2080 g_free(hb.name); | 2080 g_free(hb.name); |
2081 return buddy; | 2081 return buddy; |
2082 } | 2082 } |
2083 } | 2083 } |
2084 g_free(hb.name); | 2084 g_free(hb.name); |
2085 | 2085 |
2086 return NULL; | 2086 return NULL; |
2087 } | 2087 } |
2088 | 2088 |
2089 GaimBuddy *gaim_find_buddy_in_group(GaimAccount *account, const char *name, | 2089 PurpleBuddy *purple_find_buddy_in_group(PurpleAccount *account, const char *name, |
2090 GaimGroup *group) | 2090 PurpleGroup *group) |
2091 { | 2091 { |
2092 struct _gaim_hbuddy hb; | 2092 struct _purple_hbuddy hb; |
2093 GaimBuddy *ret; | 2093 PurpleBuddy *ret; |
2094 | 2094 |
2095 g_return_val_if_fail(gaimbuddylist != NULL, NULL); | 2095 g_return_val_if_fail(purplebuddylist != NULL, NULL); |
2096 g_return_val_if_fail(account != NULL, NULL); | 2096 g_return_val_if_fail(account != NULL, NULL); |
2097 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); | 2097 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); |
2098 | 2098 |
2099 hb.name = g_strdup(gaim_normalize(account, name)); | 2099 hb.name = g_strdup(purple_normalize(account, name)); |
2100 hb.account = account; | 2100 hb.account = account; |
2101 hb.group = (GaimBlistNode*)group; | 2101 hb.group = (PurpleBlistNode*)group; |
2102 | 2102 |
2103 ret = g_hash_table_lookup(gaimbuddylist->buddies, &hb); | 2103 ret = g_hash_table_lookup(purplebuddylist->buddies, &hb); |
2104 g_free(hb.name); | 2104 g_free(hb.name); |
2105 | 2105 |
2106 return ret; | 2106 return ret; |
2107 } | 2107 } |
2108 | 2108 |
2109 static void find_acct_buddies(gpointer key, gpointer value, gpointer data) | 2109 static void find_acct_buddies(gpointer key, gpointer value, gpointer data) |
2110 { | 2110 { |
2111 struct _gaim_hbuddy *hb = key; | 2111 struct _purple_hbuddy *hb = key; |
2112 GaimBuddy *buddy = value; | 2112 PurpleBuddy *buddy = value; |
2113 struct _list_account_buddies *ab = data; | 2113 struct _list_account_buddies *ab = data; |
2114 | 2114 |
2115 if (hb->account == ab->account) { | 2115 if (hb->account == ab->account) { |
2116 ab->list = g_slist_prepend(ab->list, buddy); | 2116 ab->list = g_slist_prepend(ab->list, buddy); |
2117 } | 2117 } |
2118 } | 2118 } |
2119 | 2119 |
2120 GSList *gaim_find_buddies(GaimAccount *account, const char *name) | 2120 GSList *purple_find_buddies(PurpleAccount *account, const char *name) |
2121 { | 2121 { |
2122 GaimBuddy *buddy; | 2122 PurpleBuddy *buddy; |
2123 GaimBlistNode *node; | 2123 PurpleBlistNode *node; |
2124 GSList *ret = NULL; | 2124 GSList *ret = NULL; |
2125 | 2125 |
2126 g_return_val_if_fail(gaimbuddylist != NULL, NULL); | 2126 g_return_val_if_fail(purplebuddylist != NULL, NULL); |
2127 g_return_val_if_fail(account != NULL, NULL); | 2127 g_return_val_if_fail(account != NULL, NULL); |
2128 | 2128 |
2129 | 2129 |
2130 if ((name != NULL) && (*name != '\0')) { | 2130 if ((name != NULL) && (*name != '\0')) { |
2131 struct _gaim_hbuddy hb; | 2131 struct _purple_hbuddy hb; |
2132 | 2132 |
2133 hb.name = g_strdup(gaim_normalize(account, name)); | 2133 hb.name = g_strdup(purple_normalize(account, name)); |
2134 hb.account = account; | 2134 hb.account = account; |
2135 | 2135 |
2136 for (node = gaimbuddylist->root; node != NULL; node = node->next) { | 2136 for (node = purplebuddylist->root; node != NULL; node = node->next) { |
2137 hb.group = node; | 2137 hb.group = node; |
2138 if ((buddy = g_hash_table_lookup(gaimbuddylist->buddies, &hb)) != NULL) | 2138 if ((buddy = g_hash_table_lookup(purplebuddylist->buddies, &hb)) != NULL) |
2139 ret = g_slist_prepend(ret, buddy); | 2139 ret = g_slist_prepend(ret, buddy); |
2140 } | 2140 } |
2141 g_free(hb.name); | 2141 g_free(hb.name); |
2142 } else { | 2142 } else { |
2143 struct _list_account_buddies *ab = g_new0(struct _list_account_buddies, 1); | 2143 struct _list_account_buddies *ab = g_new0(struct _list_account_buddies, 1); |
2144 ab->account = account; | 2144 ab->account = account; |
2145 g_hash_table_foreach(gaimbuddylist->buddies, find_acct_buddies, ab); | 2145 g_hash_table_foreach(purplebuddylist->buddies, find_acct_buddies, ab); |
2146 ret = ab->list; | 2146 ret = ab->list; |
2147 g_free(ab); | 2147 g_free(ab); |
2148 } | 2148 } |
2149 | 2149 |
2150 return ret; | 2150 return ret; |
2151 } | 2151 } |
2152 | 2152 |
2153 GaimGroup *gaim_find_group(const char *name) | 2153 PurpleGroup *purple_find_group(const char *name) |
2154 { | 2154 { |
2155 GaimBlistNode *node; | 2155 PurpleBlistNode *node; |
2156 | 2156 |
2157 g_return_val_if_fail(gaimbuddylist != NULL, NULL); | 2157 g_return_val_if_fail(purplebuddylist != NULL, NULL); |
2158 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); | 2158 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); |
2159 | 2159 |
2160 for (node = gaimbuddylist->root; node != NULL; node = node->next) { | 2160 for (node = purplebuddylist->root; node != NULL; node = node->next) { |
2161 if (!strcmp(((GaimGroup *)node)->name, name)) | 2161 if (!strcmp(((PurpleGroup *)node)->name, name)) |
2162 return (GaimGroup *)node; | 2162 return (PurpleGroup *)node; |
2163 } | 2163 } |
2164 | 2164 |
2165 return NULL; | 2165 return NULL; |
2166 } | 2166 } |
2167 | 2167 |
2168 GaimChat * | 2168 PurpleChat * |
2169 gaim_blist_find_chat(GaimAccount *account, const char *name) | 2169 purple_blist_find_chat(PurpleAccount *account, const char *name) |
2170 { | 2170 { |
2171 char *chat_name; | 2171 char *chat_name; |
2172 GaimChat *chat; | 2172 PurpleChat *chat; |
2173 GaimPlugin *prpl; | 2173 PurplePlugin *prpl; |
2174 GaimPluginProtocolInfo *prpl_info = NULL; | 2174 PurplePluginProtocolInfo *prpl_info = NULL; |
2175 struct proto_chat_entry *pce; | 2175 struct proto_chat_entry *pce; |
2176 GaimBlistNode *node, *group; | 2176 PurpleBlistNode *node, *group; |
2177 GList *parts; | 2177 GList *parts; |
2178 | 2178 |
2179 g_return_val_if_fail(gaimbuddylist != NULL, NULL); | 2179 g_return_val_if_fail(purplebuddylist != NULL, NULL); |
2180 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); | 2180 g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); |
2181 | 2181 |
2182 if (!gaim_account_is_connected(account)) | 2182 if (!purple_account_is_connected(account)) |
2183 return NULL; | 2183 return NULL; |
2184 | 2184 |
2185 prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); | 2185 prpl = purple_find_prpl(purple_account_get_protocol_id(account)); |
2186 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(prpl); | 2186 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
2187 | 2187 |
2188 if (prpl_info->find_blist_chat != NULL) | 2188 if (prpl_info->find_blist_chat != NULL) |
2189 return prpl_info->find_blist_chat(account, name); | 2189 return prpl_info->find_blist_chat(account, name); |
2190 | 2190 |
2191 for (group = gaimbuddylist->root; group != NULL; group = group->next) { | 2191 for (group = purplebuddylist->root; group != NULL; group = group->next) { |
2192 for (node = group->child; node != NULL; node = node->next) { | 2192 for (node = group->child; node != NULL; node = node->next) { |
2193 if (GAIM_BLIST_NODE_IS_CHAT(node)) { | 2193 if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
2194 | 2194 |
2195 chat = (GaimChat*)node; | 2195 chat = (PurpleChat*)node; |
2196 | 2196 |
2197 if (account != chat->account) | 2197 if (account != chat->account) |
2198 continue; | 2198 continue; |
2199 | 2199 |
2200 parts = prpl_info->chat_info( | 2200 parts = prpl_info->chat_info( |
2201 gaim_account_get_connection(chat->account)); | 2201 purple_account_get_connection(chat->account)); |
2202 | 2202 |
2203 pce = parts->data; | 2203 pce = parts->data; |
2204 chat_name = g_hash_table_lookup(chat->components, | 2204 chat_name = g_hash_table_lookup(chat->components, |
2205 pce->identifier); | 2205 pce->identifier); |
2206 | 2206 |
2214 } | 2214 } |
2215 | 2215 |
2216 return NULL; | 2216 return NULL; |
2217 } | 2217 } |
2218 | 2218 |
2219 GaimGroup * | 2219 PurpleGroup * |
2220 gaim_chat_get_group(GaimChat *chat) | 2220 purple_chat_get_group(PurpleChat *chat) |
2221 { | 2221 { |
2222 g_return_val_if_fail(chat != NULL, NULL); | 2222 g_return_val_if_fail(chat != NULL, NULL); |
2223 | 2223 |
2224 return (GaimGroup *)(((GaimBlistNode *)chat)->parent); | 2224 return (PurpleGroup *)(((PurpleBlistNode *)chat)->parent); |
2225 } | 2225 } |
2226 | 2226 |
2227 GaimContact *gaim_buddy_get_contact(GaimBuddy *buddy) | 2227 PurpleContact *purple_buddy_get_contact(PurpleBuddy *buddy) |
2228 { | 2228 { |
2229 g_return_val_if_fail(buddy != NULL, NULL); | 2229 g_return_val_if_fail(buddy != NULL, NULL); |
2230 | 2230 |
2231 return (GaimContact*)((GaimBlistNode*)buddy)->parent; | 2231 return (PurpleContact*)((PurpleBlistNode*)buddy)->parent; |
2232 } | 2232 } |
2233 | 2233 |
2234 GaimPresence *gaim_buddy_get_presence(const GaimBuddy *buddy) | 2234 PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy) |
2235 { | 2235 { |
2236 g_return_val_if_fail(buddy != NULL, NULL); | 2236 g_return_val_if_fail(buddy != NULL, NULL); |
2237 return buddy->presence; | 2237 return buddy->presence; |
2238 } | 2238 } |
2239 | 2239 |
2240 GaimGroup *gaim_buddy_get_group(GaimBuddy *buddy) | 2240 PurpleGroup *purple_buddy_get_group(PurpleBuddy *buddy) |
2241 { | 2241 { |
2242 g_return_val_if_fail(buddy != NULL, NULL); | 2242 g_return_val_if_fail(buddy != NULL, NULL); |
2243 | 2243 |
2244 if (((GaimBlistNode *)buddy)->parent == NULL) | 2244 if (((PurpleBlistNode *)buddy)->parent == NULL) |
2245 return NULL; | 2245 return NULL; |
2246 | 2246 |
2247 return (GaimGroup *)(((GaimBlistNode*)buddy)->parent->parent); | 2247 return (PurpleGroup *)(((PurpleBlistNode*)buddy)->parent->parent); |
2248 } | 2248 } |
2249 | 2249 |
2250 GSList *gaim_group_get_accounts(GaimGroup *group) | 2250 GSList *purple_group_get_accounts(PurpleGroup *group) |
2251 { | 2251 { |
2252 GSList *l = NULL; | 2252 GSList *l = NULL; |
2253 GaimBlistNode *gnode, *cnode, *bnode; | 2253 PurpleBlistNode *gnode, *cnode, *bnode; |
2254 | 2254 |
2255 gnode = (GaimBlistNode *)group; | 2255 gnode = (PurpleBlistNode *)group; |
2256 | 2256 |
2257 for (cnode = gnode->child; cnode; cnode = cnode->next) { | 2257 for (cnode = gnode->child; cnode; cnode = cnode->next) { |
2258 if (GAIM_BLIST_NODE_IS_CHAT(cnode)) { | 2258 if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) { |
2259 if (!g_slist_find(l, ((GaimChat *)cnode)->account)) | 2259 if (!g_slist_find(l, ((PurpleChat *)cnode)->account)) |
2260 l = g_slist_append(l, ((GaimChat *)cnode)->account); | 2260 l = g_slist_append(l, ((PurpleChat *)cnode)->account); |
2261 } else if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | 2261 } else if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
2262 for (bnode = cnode->child; bnode; bnode = bnode->next) { | 2262 for (bnode = cnode->child; bnode; bnode = bnode->next) { |
2263 if (GAIM_BLIST_NODE_IS_BUDDY(bnode)) { | 2263 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) { |
2264 if (!g_slist_find(l, ((GaimBuddy *)bnode)->account)) | 2264 if (!g_slist_find(l, ((PurpleBuddy *)bnode)->account)) |
2265 l = g_slist_append(l, ((GaimBuddy *)bnode)->account); | 2265 l = g_slist_append(l, ((PurpleBuddy *)bnode)->account); |
2266 } | 2266 } |
2267 } | 2267 } |
2268 } | 2268 } |
2269 } | 2269 } |
2270 | 2270 |
2271 return l; | 2271 return l; |
2272 } | 2272 } |
2273 | 2273 |
2274 void gaim_blist_add_account(GaimAccount *account) | 2274 void purple_blist_add_account(PurpleAccount *account) |
2275 { | 2275 { |
2276 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 2276 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
2277 GaimBlistNode *gnode, *cnode, *bnode; | 2277 PurpleBlistNode *gnode, *cnode, *bnode; |
2278 | 2278 |
2279 g_return_if_fail(gaimbuddylist != NULL); | 2279 g_return_if_fail(purplebuddylist != NULL); |
2280 | 2280 |
2281 if (!ops || !ops->update) | 2281 if (!ops || !ops->update) |
2282 return; | 2282 return; |
2283 | 2283 |
2284 for (gnode = gaimbuddylist->root; gnode; gnode = gnode->next) { | 2284 for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) { |
2285 if (!GAIM_BLIST_NODE_IS_GROUP(gnode)) | 2285 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
2286 continue; | 2286 continue; |
2287 for (cnode = gnode->child; cnode; cnode = cnode->next) { | 2287 for (cnode = gnode->child; cnode; cnode = cnode->next) { |
2288 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | 2288 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
2289 gboolean recompute = FALSE; | 2289 gboolean recompute = FALSE; |
2290 for (bnode = cnode->child; bnode; bnode = bnode->next) { | 2290 for (bnode = cnode->child; bnode; bnode = bnode->next) { |
2291 if (GAIM_BLIST_NODE_IS_BUDDY(bnode) && | 2291 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode) && |
2292 ((GaimBuddy*)bnode)->account == account) { | 2292 ((PurpleBuddy*)bnode)->account == account) { |
2293 recompute = TRUE; | 2293 recompute = TRUE; |
2294 ((GaimContact*)cnode)->currentsize++; | 2294 ((PurpleContact*)cnode)->currentsize++; |
2295 if (((GaimContact*)cnode)->currentsize == 1) | 2295 if (((PurpleContact*)cnode)->currentsize == 1) |
2296 ((GaimGroup*)gnode)->currentsize++; | 2296 ((PurpleGroup*)gnode)->currentsize++; |
2297 ops->update(gaimbuddylist, bnode); | 2297 ops->update(purplebuddylist, bnode); |
2298 } | 2298 } |
2299 } | 2299 } |
2300 if (recompute || | 2300 if (recompute || |
2301 gaim_blist_node_get_bool(cnode, "show_offline")) { | 2301 purple_blist_node_get_bool(cnode, "show_offline")) { |
2302 gaim_contact_invalidate_priority_buddy((GaimContact*)cnode); | 2302 purple_contact_invalidate_priority_buddy((PurpleContact*)cnode); |
2303 ops->update(gaimbuddylist, cnode); | 2303 ops->update(purplebuddylist, cnode); |
2304 } | 2304 } |
2305 } else if (GAIM_BLIST_NODE_IS_CHAT(cnode) && | 2305 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode) && |
2306 ((GaimChat*)cnode)->account == account) { | 2306 ((PurpleChat*)cnode)->account == account) { |
2307 ((GaimGroup *)gnode)->online++; | 2307 ((PurpleGroup *)gnode)->online++; |
2308 ((GaimGroup *)gnode)->currentsize++; | 2308 ((PurpleGroup *)gnode)->currentsize++; |
2309 ops->update(gaimbuddylist, cnode); | 2309 ops->update(purplebuddylist, cnode); |
2310 } | 2310 } |
2311 } | 2311 } |
2312 ops->update(gaimbuddylist, gnode); | 2312 ops->update(purplebuddylist, gnode); |
2313 } | 2313 } |
2314 } | 2314 } |
2315 | 2315 |
2316 void gaim_blist_remove_account(GaimAccount *account) | 2316 void purple_blist_remove_account(PurpleAccount *account) |
2317 { | 2317 { |
2318 GaimBlistUiOps *ops = gaim_blist_get_ui_ops(); | 2318 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); |
2319 GaimBlistNode *gnode, *cnode, *bnode; | 2319 PurpleBlistNode *gnode, *cnode, *bnode; |
2320 GaimBuddy *buddy; | 2320 PurpleBuddy *buddy; |
2321 GaimChat *chat; | 2321 PurpleChat *chat; |
2322 GaimContact *contact; | 2322 PurpleContact *contact; |
2323 GaimGroup *group; | 2323 PurpleGroup *group; |
2324 GList *list = NULL, *iter = NULL; | 2324 GList *list = NULL, *iter = NULL; |
2325 | 2325 |
2326 g_return_if_fail(gaimbuddylist != NULL); | 2326 g_return_if_fail(purplebuddylist != NULL); |
2327 | 2327 |
2328 for (gnode = gaimbuddylist->root; gnode; gnode = gnode->next) { | 2328 for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) { |
2329 if (!GAIM_BLIST_NODE_IS_GROUP(gnode)) | 2329 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
2330 continue; | 2330 continue; |
2331 | 2331 |
2332 group = (GaimGroup *)gnode; | 2332 group = (PurpleGroup *)gnode; |
2333 | 2333 |
2334 for (cnode = gnode->child; cnode; cnode = cnode->next) { | 2334 for (cnode = gnode->child; cnode; cnode = cnode->next) { |
2335 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | 2335 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
2336 gboolean recompute = FALSE; | 2336 gboolean recompute = FALSE; |
2337 contact = (GaimContact *)cnode; | 2337 contact = (PurpleContact *)cnode; |
2338 | 2338 |
2339 for (bnode = cnode->child; bnode; bnode = bnode->next) { | 2339 for (bnode = cnode->child; bnode; bnode = bnode->next) { |
2340 if (!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | 2340 if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) |
2341 continue; | 2341 continue; |
2342 | 2342 |
2343 buddy = (GaimBuddy *)bnode; | 2343 buddy = (PurpleBuddy *)bnode; |
2344 if (account == buddy->account) { | 2344 if (account == buddy->account) { |
2345 GaimPresence *presence; | 2345 PurplePresence *presence; |
2346 recompute = TRUE; | 2346 recompute = TRUE; |
2347 | 2347 |
2348 presence = gaim_buddy_get_presence(buddy); | 2348 presence = purple_buddy_get_presence(buddy); |
2349 | 2349 |
2350 if(gaim_presence_is_online(presence)) { | 2350 if(purple_presence_is_online(presence)) { |
2351 contact->online--; | 2351 contact->online--; |
2352 if (contact->online == 0) | 2352 if (contact->online == 0) |
2353 group->online--; | 2353 group->online--; |
2354 | 2354 |
2355 gaim_blist_node_set_int(&buddy->node, | 2355 purple_blist_node_set_int(&buddy->node, |
2356 "last_seen", time(NULL)); | 2356 "last_seen", time(NULL)); |
2357 } | 2357 } |
2358 | 2358 |
2359 contact->currentsize--; | 2359 contact->currentsize--; |
2360 if (contact->currentsize == 0) | 2360 if (contact->currentsize == 0) |
2362 | 2362 |
2363 if (!g_list_find(list, presence)) | 2363 if (!g_list_find(list, presence)) |
2364 list = g_list_prepend(list, presence); | 2364 list = g_list_prepend(list, presence); |
2365 | 2365 |
2366 if (ops && ops->remove) | 2366 if (ops && ops->remove) |
2367 ops->remove(gaimbuddylist, bnode); | 2367 ops->remove(purplebuddylist, bnode); |
2368 } | 2368 } |
2369 } | 2369 } |
2370 if (recompute) { | 2370 if (recompute) { |
2371 gaim_contact_invalidate_priority_buddy(contact); | 2371 purple_contact_invalidate_priority_buddy(contact); |
2372 if (ops && ops->update) | 2372 if (ops && ops->update) |
2373 ops->update(gaimbuddylist, cnode); | 2373 ops->update(purplebuddylist, cnode); |
2374 } | 2374 } |
2375 } else if (GAIM_BLIST_NODE_IS_CHAT(cnode)) { | 2375 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) { |
2376 chat = (GaimChat *)cnode; | 2376 chat = (PurpleChat *)cnode; |
2377 | 2377 |
2378 if(chat->account == account) { | 2378 if(chat->account == account) { |
2379 group->currentsize--; | 2379 group->currentsize--; |
2380 group->online--; | 2380 group->online--; |
2381 | 2381 |
2382 if (ops && ops->remove) | 2382 if (ops && ops->remove) |
2383 ops->remove(gaimbuddylist, cnode); | 2383 ops->remove(purplebuddylist, cnode); |
2384 } | 2384 } |
2385 } | 2385 } |
2386 } | 2386 } |
2387 } | 2387 } |
2388 | 2388 |
2389 for (iter = list; iter; iter = iter->next) | 2389 for (iter = list; iter; iter = iter->next) |
2390 { | 2390 { |
2391 gaim_presence_set_status_active(iter->data, "offline", TRUE); | 2391 purple_presence_set_status_active(iter->data, "offline", TRUE); |
2392 } | 2392 } |
2393 g_list_free(list); | 2393 g_list_free(list); |
2394 } | 2394 } |
2395 | 2395 |
2396 gboolean gaim_group_on_account(GaimGroup *g, GaimAccount *account) | 2396 gboolean purple_group_on_account(PurpleGroup *g, PurpleAccount *account) |
2397 { | 2397 { |
2398 GaimBlistNode *cnode; | 2398 PurpleBlistNode *cnode; |
2399 for (cnode = ((GaimBlistNode *)g)->child; cnode; cnode = cnode->next) { | 2399 for (cnode = ((PurpleBlistNode *)g)->child; cnode; cnode = cnode->next) { |
2400 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | 2400 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
2401 if(gaim_contact_on_account((GaimContact *) cnode, account)) | 2401 if(purple_contact_on_account((PurpleContact *) cnode, account)) |
2402 return TRUE; | 2402 return TRUE; |
2403 } else if (GAIM_BLIST_NODE_IS_CHAT(cnode)) { | 2403 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) { |
2404 GaimChat *chat = (GaimChat *)cnode; | 2404 PurpleChat *chat = (PurpleChat *)cnode; |
2405 if ((!account && gaim_account_is_connected(chat->account)) | 2405 if ((!account && purple_account_is_connected(chat->account)) |
2406 || chat->account == account) | 2406 || chat->account == account) |
2407 return TRUE; | 2407 return TRUE; |
2408 } | 2408 } |
2409 } | 2409 } |
2410 return FALSE; | 2410 return FALSE; |
2411 } | 2411 } |
2412 | 2412 |
2413 void | 2413 void |
2414 gaim_blist_request_add_buddy(GaimAccount *account, const char *username, | 2414 purple_blist_request_add_buddy(PurpleAccount *account, const char *username, |
2415 const char *group, const char *alias) | 2415 const char *group, const char *alias) |
2416 { | 2416 { |
2417 GaimBlistUiOps *ui_ops; | 2417 PurpleBlistUiOps *ui_ops; |
2418 | 2418 |
2419 ui_ops = gaim_blist_get_ui_ops(); | 2419 ui_ops = purple_blist_get_ui_ops(); |
2420 | 2420 |
2421 if (ui_ops != NULL && ui_ops->request_add_buddy != NULL) | 2421 if (ui_ops != NULL && ui_ops->request_add_buddy != NULL) |
2422 ui_ops->request_add_buddy(account, username, group, alias); | 2422 ui_ops->request_add_buddy(account, username, group, alias); |
2423 } | 2423 } |
2424 | 2424 |
2425 void | 2425 void |
2426 gaim_blist_request_add_chat(GaimAccount *account, GaimGroup *group, | 2426 purple_blist_request_add_chat(PurpleAccount *account, PurpleGroup *group, |
2427 const char *alias, const char *name) | 2427 const char *alias, const char *name) |
2428 { | 2428 { |
2429 GaimBlistUiOps *ui_ops; | 2429 PurpleBlistUiOps *ui_ops; |
2430 | 2430 |
2431 ui_ops = gaim_blist_get_ui_ops(); | 2431 ui_ops = purple_blist_get_ui_ops(); |
2432 | 2432 |
2433 if (ui_ops != NULL && ui_ops->request_add_chat != NULL) | 2433 if (ui_ops != NULL && ui_ops->request_add_chat != NULL) |
2434 ui_ops->request_add_chat(account, group, alias, name); | 2434 ui_ops->request_add_chat(account, group, alias, name); |
2435 } | 2435 } |
2436 | 2436 |
2437 void | 2437 void |
2438 gaim_blist_request_add_group(void) | 2438 purple_blist_request_add_group(void) |
2439 { | 2439 { |
2440 GaimBlistUiOps *ui_ops; | 2440 PurpleBlistUiOps *ui_ops; |
2441 | 2441 |
2442 ui_ops = gaim_blist_get_ui_ops(); | 2442 ui_ops = purple_blist_get_ui_ops(); |
2443 | 2443 |
2444 if (ui_ops != NULL && ui_ops->request_add_group != NULL) | 2444 if (ui_ops != NULL && ui_ops->request_add_group != NULL) |
2445 ui_ops->request_add_group(); | 2445 ui_ops->request_add_group(); |
2446 } | 2446 } |
2447 | 2447 |
2448 static void | 2448 static void |
2449 gaim_blist_node_setting_free(gpointer data) | 2449 purple_blist_node_setting_free(gpointer data) |
2450 { | 2450 { |
2451 GaimValue *value; | 2451 PurpleValue *value; |
2452 | 2452 |
2453 value = (GaimValue *)data; | 2453 value = (PurpleValue *)data; |
2454 | 2454 |
2455 gaim_value_destroy(value); | 2455 purple_value_destroy(value); |
2456 } | 2456 } |
2457 | 2457 |
2458 static void gaim_blist_node_initialize_settings(GaimBlistNode *node) | 2458 static void purple_blist_node_initialize_settings(PurpleBlistNode *node) |
2459 { | 2459 { |
2460 if (node->settings) | 2460 if (node->settings) |
2461 return; | 2461 return; |
2462 | 2462 |
2463 node->settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, | 2463 node->settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
2464 (GDestroyNotify)gaim_blist_node_setting_free); | 2464 (GDestroyNotify)purple_blist_node_setting_free); |
2465 } | 2465 } |
2466 | 2466 |
2467 void gaim_blist_node_remove_setting(GaimBlistNode *node, const char *key) | 2467 void purple_blist_node_remove_setting(PurpleBlistNode *node, const char *key) |
2468 { | 2468 { |
2469 g_return_if_fail(node != NULL); | 2469 g_return_if_fail(node != NULL); |
2470 g_return_if_fail(node->settings != NULL); | 2470 g_return_if_fail(node->settings != NULL); |
2471 g_return_if_fail(key != NULL); | 2471 g_return_if_fail(key != NULL); |
2472 | 2472 |
2473 g_hash_table_remove(node->settings, key); | 2473 g_hash_table_remove(node->settings, key); |
2474 | 2474 |
2475 gaim_blist_schedule_save(); | 2475 purple_blist_schedule_save(); |
2476 } | 2476 } |
2477 | 2477 |
2478 void | 2478 void |
2479 gaim_blist_node_set_flags(GaimBlistNode *node, GaimBlistNodeFlags flags) | 2479 purple_blist_node_set_flags(PurpleBlistNode *node, PurpleBlistNodeFlags flags) |
2480 { | 2480 { |
2481 g_return_if_fail(node != NULL); | 2481 g_return_if_fail(node != NULL); |
2482 | 2482 |
2483 node->flags = flags; | 2483 node->flags = flags; |
2484 } | 2484 } |
2485 | 2485 |
2486 GaimBlistNodeFlags | 2486 PurpleBlistNodeFlags |
2487 gaim_blist_node_get_flags(GaimBlistNode *node) | 2487 purple_blist_node_get_flags(PurpleBlistNode *node) |
2488 { | 2488 { |
2489 g_return_val_if_fail(node != NULL, 0); | 2489 g_return_val_if_fail(node != NULL, 0); |
2490 | 2490 |
2491 return node->flags; | 2491 return node->flags; |
2492 } | 2492 } |
2493 | 2493 |
2494 void | 2494 void |
2495 gaim_blist_node_set_bool(GaimBlistNode* node, const char *key, gboolean data) | 2495 purple_blist_node_set_bool(PurpleBlistNode* node, const char *key, gboolean data) |
2496 { | 2496 { |
2497 GaimValue *value; | 2497 PurpleValue *value; |
2498 | 2498 |
2499 g_return_if_fail(node != NULL); | 2499 g_return_if_fail(node != NULL); |
2500 g_return_if_fail(node->settings != NULL); | 2500 g_return_if_fail(node->settings != NULL); |
2501 g_return_if_fail(key != NULL); | 2501 g_return_if_fail(key != NULL); |
2502 | 2502 |
2503 value = gaim_value_new(GAIM_TYPE_BOOLEAN); | 2503 value = purple_value_new(PURPLE_TYPE_BOOLEAN); |
2504 gaim_value_set_boolean(value, data); | 2504 purple_value_set_boolean(value, data); |
2505 | 2505 |
2506 g_hash_table_replace(node->settings, g_strdup(key), value); | 2506 g_hash_table_replace(node->settings, g_strdup(key), value); |
2507 | 2507 |
2508 gaim_blist_schedule_save(); | 2508 purple_blist_schedule_save(); |
2509 } | 2509 } |
2510 | 2510 |
2511 gboolean | 2511 gboolean |
2512 gaim_blist_node_get_bool(GaimBlistNode* node, const char *key) | 2512 purple_blist_node_get_bool(PurpleBlistNode* node, const char *key) |
2513 { | 2513 { |
2514 GaimValue *value; | 2514 PurpleValue *value; |
2515 | 2515 |
2516 g_return_val_if_fail(node != NULL, FALSE); | 2516 g_return_val_if_fail(node != NULL, FALSE); |
2517 g_return_val_if_fail(node->settings != NULL, FALSE); | 2517 g_return_val_if_fail(node->settings != NULL, FALSE); |
2518 g_return_val_if_fail(key != NULL, FALSE); | 2518 g_return_val_if_fail(key != NULL, FALSE); |
2519 | 2519 |
2520 value = g_hash_table_lookup(node->settings, key); | 2520 value = g_hash_table_lookup(node->settings, key); |
2521 | 2521 |
2522 if (value == NULL) | 2522 if (value == NULL) |
2523 return FALSE; | 2523 return FALSE; |
2524 | 2524 |
2525 g_return_val_if_fail(gaim_value_get_type(value) == GAIM_TYPE_BOOLEAN, FALSE); | 2525 g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_BOOLEAN, FALSE); |
2526 | 2526 |
2527 return gaim_value_get_boolean(value); | 2527 return purple_value_get_boolean(value); |
2528 } | 2528 } |
2529 | 2529 |
2530 void | 2530 void |
2531 gaim_blist_node_set_int(GaimBlistNode* node, const char *key, int data) | 2531 purple_blist_node_set_int(PurpleBlistNode* node, const char *key, int data) |
2532 { | 2532 { |
2533 GaimValue *value; | 2533 PurpleValue *value; |
2534 | 2534 |
2535 g_return_if_fail(node != NULL); | 2535 g_return_if_fail(node != NULL); |
2536 g_return_if_fail(node->settings != NULL); | 2536 g_return_if_fail(node->settings != NULL); |
2537 g_return_if_fail(key != NULL); | 2537 g_return_if_fail(key != NULL); |
2538 | 2538 |
2539 value = gaim_value_new(GAIM_TYPE_INT); | 2539 value = purple_value_new(PURPLE_TYPE_INT); |
2540 gaim_value_set_int(value, data); | 2540 purple_value_set_int(value, data); |
2541 | 2541 |
2542 g_hash_table_replace(node->settings, g_strdup(key), value); | 2542 g_hash_table_replace(node->settings, g_strdup(key), value); |
2543 | 2543 |
2544 gaim_blist_schedule_save(); | 2544 purple_blist_schedule_save(); |
2545 } | 2545 } |
2546 | 2546 |
2547 int | 2547 int |
2548 gaim_blist_node_get_int(GaimBlistNode* node, const char *key) | 2548 purple_blist_node_get_int(PurpleBlistNode* node, const char *key) |
2549 { | 2549 { |
2550 GaimValue *value; | 2550 PurpleValue *value; |
2551 | 2551 |
2552 g_return_val_if_fail(node != NULL, 0); | 2552 g_return_val_if_fail(node != NULL, 0); |
2553 g_return_val_if_fail(node->settings != NULL, 0); | 2553 g_return_val_if_fail(node->settings != NULL, 0); |
2554 g_return_val_if_fail(key != NULL, 0); | 2554 g_return_val_if_fail(key != NULL, 0); |
2555 | 2555 |
2556 value = g_hash_table_lookup(node->settings, key); | 2556 value = g_hash_table_lookup(node->settings, key); |
2557 | 2557 |
2558 if (value == NULL) | 2558 if (value == NULL) |
2559 return 0; | 2559 return 0; |
2560 | 2560 |
2561 g_return_val_if_fail(gaim_value_get_type(value) == GAIM_TYPE_INT, 0); | 2561 g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_INT, 0); |
2562 | 2562 |
2563 return gaim_value_get_int(value); | 2563 return purple_value_get_int(value); |
2564 } | 2564 } |
2565 | 2565 |
2566 void | 2566 void |
2567 gaim_blist_node_set_string(GaimBlistNode* node, const char *key, const char *data) | 2567 purple_blist_node_set_string(PurpleBlistNode* node, const char *key, const char *data) |
2568 { | 2568 { |
2569 GaimValue *value; | 2569 PurpleValue *value; |
2570 | 2570 |
2571 g_return_if_fail(node != NULL); | 2571 g_return_if_fail(node != NULL); |
2572 g_return_if_fail(node->settings != NULL); | 2572 g_return_if_fail(node->settings != NULL); |
2573 g_return_if_fail(key != NULL); | 2573 g_return_if_fail(key != NULL); |
2574 | 2574 |
2575 value = gaim_value_new(GAIM_TYPE_STRING); | 2575 value = purple_value_new(PURPLE_TYPE_STRING); |
2576 gaim_value_set_string(value, data); | 2576 purple_value_set_string(value, data); |
2577 | 2577 |
2578 g_hash_table_replace(node->settings, g_strdup(key), value); | 2578 g_hash_table_replace(node->settings, g_strdup(key), value); |
2579 | 2579 |
2580 gaim_blist_schedule_save(); | 2580 purple_blist_schedule_save(); |
2581 } | 2581 } |
2582 | 2582 |
2583 const char * | 2583 const char * |
2584 gaim_blist_node_get_string(GaimBlistNode* node, const char *key) | 2584 purple_blist_node_get_string(PurpleBlistNode* node, const char *key) |
2585 { | 2585 { |
2586 GaimValue *value; | 2586 PurpleValue *value; |
2587 | 2587 |
2588 g_return_val_if_fail(node != NULL, NULL); | 2588 g_return_val_if_fail(node != NULL, NULL); |
2589 g_return_val_if_fail(node->settings != NULL, NULL); | 2589 g_return_val_if_fail(node->settings != NULL, NULL); |
2590 g_return_val_if_fail(key != NULL, NULL); | 2590 g_return_val_if_fail(key != NULL, NULL); |
2591 | 2591 |
2592 value = g_hash_table_lookup(node->settings, key); | 2592 value = g_hash_table_lookup(node->settings, key); |
2593 | 2593 |
2594 if (value == NULL) | 2594 if (value == NULL) |
2595 return NULL; | 2595 return NULL; |
2596 | 2596 |
2597 g_return_val_if_fail(gaim_value_get_type(value) == GAIM_TYPE_STRING, NULL); | 2597 g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_STRING, NULL); |
2598 | 2598 |
2599 return gaim_value_get_string(value); | 2599 return purple_value_get_string(value); |
2600 } | 2600 } |
2601 | 2601 |
2602 GList * | 2602 GList * |
2603 gaim_blist_node_get_extended_menu(GaimBlistNode *n) | 2603 purple_blist_node_get_extended_menu(PurpleBlistNode *n) |
2604 { | 2604 { |
2605 GList *menu = NULL; | 2605 GList *menu = NULL; |
2606 | 2606 |
2607 g_return_val_if_fail(n != NULL, NULL); | 2607 g_return_val_if_fail(n != NULL, NULL); |
2608 | 2608 |
2609 gaim_signal_emit(gaim_blist_get_handle(), | 2609 purple_signal_emit(purple_blist_get_handle(), |
2610 "blist-node-extended-menu", | 2610 "blist-node-extended-menu", |
2611 n, &menu); | 2611 n, &menu); |
2612 return menu; | 2612 return menu; |
2613 } | 2613 } |
2614 | 2614 |
2615 int gaim_blist_get_group_size(GaimGroup *group, gboolean offline) | 2615 int purple_blist_get_group_size(PurpleGroup *group, gboolean offline) |
2616 { | 2616 { |
2617 if (!group) | 2617 if (!group) |
2618 return 0; | 2618 return 0; |
2619 | 2619 |
2620 return offline ? group->totalsize : group->currentsize; | 2620 return offline ? group->totalsize : group->currentsize; |
2621 } | 2621 } |
2622 | 2622 |
2623 int gaim_blist_get_group_online_count(GaimGroup *group) | 2623 int purple_blist_get_group_online_count(PurpleGroup *group) |
2624 { | 2624 { |
2625 if (!group) | 2625 if (!group) |
2626 return 0; | 2626 return 0; |
2627 | 2627 |
2628 return group->online; | 2628 return group->online; |
2629 } | 2629 } |
2630 | 2630 |
2631 void | 2631 void |
2632 gaim_blist_set_ui_ops(GaimBlistUiOps *ops) | 2632 purple_blist_set_ui_ops(PurpleBlistUiOps *ops) |
2633 { | 2633 { |
2634 blist_ui_ops = ops; | 2634 blist_ui_ops = ops; |
2635 } | 2635 } |
2636 | 2636 |
2637 GaimBlistUiOps * | 2637 PurpleBlistUiOps * |
2638 gaim_blist_get_ui_ops(void) | 2638 purple_blist_get_ui_ops(void) |
2639 { | 2639 { |
2640 return blist_ui_ops; | 2640 return blist_ui_ops; |
2641 } | 2641 } |
2642 | 2642 |
2643 | 2643 |
2644 void * | 2644 void * |
2645 gaim_blist_get_handle(void) | 2645 purple_blist_get_handle(void) |
2646 { | 2646 { |
2647 static int handle; | 2647 static int handle; |
2648 | 2648 |
2649 return &handle; | 2649 return &handle; |
2650 } | 2650 } |
2651 | 2651 |
2652 void | 2652 void |
2653 gaim_blist_init(void) | 2653 purple_blist_init(void) |
2654 { | 2654 { |
2655 void *handle = gaim_blist_get_handle(); | 2655 void *handle = purple_blist_get_handle(); |
2656 | 2656 |
2657 gaim_signal_register(handle, "buddy-status-changed", | 2657 purple_signal_register(handle, "buddy-status-changed", |
2658 gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, | 2658 purple_marshal_VOID__POINTER_POINTER_POINTER, NULL, |
2659 3, | 2659 3, |
2660 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2660 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2661 GAIM_SUBTYPE_BLIST_BUDDY), | 2661 PURPLE_SUBTYPE_BLIST_BUDDY), |
2662 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2662 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2663 GAIM_SUBTYPE_STATUS), | 2663 PURPLE_SUBTYPE_STATUS), |
2664 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2664 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2665 GAIM_SUBTYPE_STATUS)); | 2665 PURPLE_SUBTYPE_STATUS)); |
2666 gaim_signal_register(handle, "buddy-privacy-changed", | 2666 purple_signal_register(handle, "buddy-privacy-changed", |
2667 gaim_marshal_VOID__POINTER, NULL, | 2667 purple_marshal_VOID__POINTER, NULL, |
2668 1, | 2668 1, |
2669 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2669 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2670 GAIM_SUBTYPE_BLIST_BUDDY)); | 2670 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2671 | 2671 |
2672 gaim_signal_register(handle, "buddy-idle-changed", | 2672 purple_signal_register(handle, "buddy-idle-changed", |
2673 gaim_marshal_VOID__POINTER_INT_INT, NULL, | 2673 purple_marshal_VOID__POINTER_INT_INT, NULL, |
2674 3, | 2674 3, |
2675 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2675 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2676 GAIM_SUBTYPE_BLIST_BUDDY), | 2676 PURPLE_SUBTYPE_BLIST_BUDDY), |
2677 gaim_value_new(GAIM_TYPE_INT), | 2677 purple_value_new(PURPLE_TYPE_INT), |
2678 gaim_value_new(GAIM_TYPE_INT)); | 2678 purple_value_new(PURPLE_TYPE_INT)); |
2679 | 2679 |
2680 | 2680 |
2681 gaim_signal_register(handle, "buddy-signed-on", | 2681 purple_signal_register(handle, "buddy-signed-on", |
2682 gaim_marshal_VOID__POINTER, NULL, 1, | 2682 purple_marshal_VOID__POINTER, NULL, 1, |
2683 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2683 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2684 GAIM_SUBTYPE_BLIST_BUDDY)); | 2684 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2685 | 2685 |
2686 gaim_signal_register(handle, "buddy-signed-off", | 2686 purple_signal_register(handle, "buddy-signed-off", |
2687 gaim_marshal_VOID__POINTER, NULL, 1, | 2687 purple_marshal_VOID__POINTER, NULL, 1, |
2688 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2688 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2689 GAIM_SUBTYPE_BLIST_BUDDY)); | 2689 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2690 | 2690 |
2691 gaim_signal_register(handle, "buddy-got-login-time", | 2691 purple_signal_register(handle, "buddy-got-login-time", |
2692 gaim_marshal_VOID__POINTER, NULL, 1, | 2692 purple_marshal_VOID__POINTER, NULL, 1, |
2693 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2693 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2694 GAIM_SUBTYPE_BLIST_BUDDY)); | 2694 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2695 | 2695 |
2696 gaim_signal_register(handle, "buddy-added", | 2696 purple_signal_register(handle, "buddy-added", |
2697 gaim_marshal_VOID__POINTER, NULL, 1, | 2697 purple_marshal_VOID__POINTER, NULL, 1, |
2698 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2698 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2699 GAIM_SUBTYPE_BLIST_BUDDY)); | 2699 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2700 | 2700 |
2701 gaim_signal_register(handle, "buddy-removed", | 2701 purple_signal_register(handle, "buddy-removed", |
2702 gaim_marshal_VOID__POINTER, NULL, 1, | 2702 purple_marshal_VOID__POINTER, NULL, 1, |
2703 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2703 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2704 GAIM_SUBTYPE_BLIST_BUDDY)); | 2704 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2705 | 2705 |
2706 gaim_signal_register(handle, "buddy-icon-changed", | 2706 purple_signal_register(handle, "buddy-icon-changed", |
2707 gaim_marshal_VOID__POINTER, NULL, 1, | 2707 purple_marshal_VOID__POINTER, NULL, 1, |
2708 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2708 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2709 GAIM_SUBTYPE_BLIST_BUDDY)); | 2709 PURPLE_SUBTYPE_BLIST_BUDDY)); |
2710 | 2710 |
2711 gaim_signal_register(handle, "update-idle", gaim_marshal_VOID, NULL, 0); | 2711 purple_signal_register(handle, "update-idle", purple_marshal_VOID, NULL, 0); |
2712 | 2712 |
2713 gaim_signal_register(handle, "blist-node-extended-menu", | 2713 purple_signal_register(handle, "blist-node-extended-menu", |
2714 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | 2714 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
2715 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2715 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2716 GAIM_SUBTYPE_BLIST_NODE), | 2716 PURPLE_SUBTYPE_BLIST_NODE), |
2717 gaim_value_new(GAIM_TYPE_BOXED, "GList **")); | 2717 purple_value_new(PURPLE_TYPE_BOXED, "GList **")); |
2718 | 2718 |
2719 gaim_signal_register(handle, "blist-node-aliased", | 2719 purple_signal_register(handle, "blist-node-aliased", |
2720 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | 2720 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
2721 gaim_value_new(GAIM_TYPE_SUBTYPE, | 2721 purple_value_new(PURPLE_TYPE_SUBTYPE, |
2722 GAIM_SUBTYPE_BLIST_NODE), | 2722 PURPLE_SUBTYPE_BLIST_NODE), |
2723 gaim_value_new(GAIM_TYPE_STRING)); | 2723 purple_value_new(PURPLE_TYPE_STRING)); |
2724 } | 2724 } |
2725 | 2725 |
2726 void | 2726 void |
2727 gaim_blist_uninit(void) | 2727 purple_blist_uninit(void) |
2728 { | 2728 { |
2729 if (save_timer != 0) | 2729 if (save_timer != 0) |
2730 { | 2730 { |
2731 gaim_timeout_remove(save_timer); | 2731 purple_timeout_remove(save_timer); |
2732 save_timer = 0; | 2732 save_timer = 0; |
2733 gaim_blist_sync(); | 2733 purple_blist_sync(); |
2734 } | 2734 } |
2735 | 2735 |
2736 gaim_signals_unregister_by_instance(gaim_blist_get_handle()); | 2736 purple_signals_unregister_by_instance(purple_blist_get_handle()); |
2737 } | 2737 } |