Updated nullclient-ecore.
[python-purple] / purple.c
1 /* Generated by Cython 0.9.8 on Fri Dec 12 10:07:08 2008 */
2
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #include "structmember.h"
6 #ifndef PY_LONG_LONG
7   #define PY_LONG_LONG LONG_LONG
8 #endif
9 #ifndef DL_EXPORT
10   #define DL_EXPORT(t) t
11 #endif
12 #if PY_VERSION_HEX < 0x02040000
13   #define METH_COEXIST 0
14 #endif
15 #if PY_VERSION_HEX < 0x02050000
16   typedef int Py_ssize_t;
17   #define PY_SSIZE_T_MAX INT_MAX
18   #define PY_SSIZE_T_MIN INT_MIN
19   #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
20   #define PyInt_AsSsize_t(o)   PyInt_AsLong(o)
21   #define PyNumber_Index(o)    PyNumber_Int(o)
22   #define PyIndex_Check(o)     PyNumber_Check(o)
23 #endif
24 #if PY_VERSION_HEX < 0x02060000
25   #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
26   #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
27   #define Py_SIZE(ob)   ((PyVarObject*)(ob))->ob_size)
28   #define PyVarObject_HEAD_INIT(type, size) \
29           PyObject_HEAD_INIT(type) size,
30
31   typedef struct {
32        void *buf;
33        Py_ssize_t len;
34        int readonly;
35        const char *format;
36        int ndim;
37        Py_ssize_t *shape;
38        Py_ssize_t *strides;
39        Py_ssize_t *suboffsets;
40        Py_ssize_t itemsize;
41        void *internal;
42   } Py_buffer;
43
44   #define PyBUF_SIMPLE 0
45   #define PyBUF_WRITABLE 0x0001
46   #define PyBUF_LOCK 0x0002
47   #define PyBUF_FORMAT 0x0004
48   #define PyBUF_ND 0x0008
49   #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
50   #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
51   #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
52   #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
53   #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
54 #endif
55 #if PY_MAJOR_VERSION < 3
56   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
57 #else
58   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
59 #endif
60 #if PY_MAJOR_VERSION >= 3
61   #define Py_TPFLAGS_CHECKTYPES 0
62   #define Py_TPFLAGS_HAVE_INDEX 0
63 #endif
64 #if PY_MAJOR_VERSION >= 3
65   #define PyBaseString_Type            PyUnicode_Type
66   #define PyString_Type                PyBytes_Type
67   #define PyInt_Type                   PyLong_Type
68   #define PyInt_Check(op)              PyLong_Check(op)
69   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
70   #define PyInt_FromString             PyLong_FromString
71   #define PyInt_FromUnicode            PyLong_FromUnicode
72   #define PyInt_FromLong               PyLong_FromLong
73   #define PyInt_FromSize_t             PyLong_FromSize_t
74   #define PyInt_FromSsize_t            PyLong_FromSsize_t
75   #define PyInt_AsLong                 PyLong_AsLong
76   #define PyInt_AS_LONG                PyLong_AS_LONG
77   #define PyInt_AsSsize_t              PyLong_AsSsize_t
78   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
79   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
80   #define PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
81 #else
82   #define PyBytes_Type                 PyString_Type
83 #endif
84 #if PY_MAJOR_VERSION >= 3
85   #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
86 #endif
87 #ifndef __stdcall
88   #define __stdcall
89 #endif
90 #ifndef __cdecl
91   #define __cdecl
92 #endif
93 #ifdef __cplusplus
94 #define __PYX_EXTERN_C extern "C"
95 #else
96 #define __PYX_EXTERN_C extern
97 #endif
98 #include <math.h>
99 #define __PYX_HAVE_API__purple
100 #include "libpurple/purple.h"
101 #include "c_purple.h"
102 #include "glib.h"
103 #include "libpurple/blist.h"
104 #include "libpurple/connection.h"
105 #include "libpurple/log.h"
106 #include "libpurple/proxy.h"
107 #include "libpurple/status.h"
108 #include "libpurple/account.h"
109 #include "libpurple/prefs.h"
110 #include "libpurple/accountopt.h"
111 #include "libpurple/buddyicon.h"
112 #include "libpurple/plugin.h"
113 #include "libpurple/prpl.h"
114 #include "time.h"
115 #include "libpurple/conversation.h"
116 #include "libpurple/core.h"
117 #include "libpurple/debug.h"
118 #include "libpurple/eventloop.h"
119 #include "libpurple/ft.h"
120 #include "libpurple/idle.h"
121 #include "libpurple/notify.h"
122 #include "libpurple/pounce.h"
123 #include "libpurple/privacy.h"
124 #include "libpurple/request.h"
125 #include "libpurple/roomlist.h"
126 #include "libpurple/server.h"
127 #include "libpurple/signals.h"
128 #include "libpurple/value.h"
129 #include "libpurple/savedstatuses.h"
130 #include "libpurple/xmlnode.h"
131 #include "libpurple/util.h"
132
133
134 #ifdef __GNUC__
135 #define INLINE __inline__
136 #elif _WIN32
137 #define INLINE __inline
138 #else
139 #define INLINE 
140 #endif
141
142 typedef struct {PyObject **p; char *s; long n; char is_unicode; char intern; char is_identifier;} __Pyx_StringTabEntry; /*proto*/
143
144
145
146 static int __pyx_skip_dispatch = 0;
147
148
149 /* Type Conversion Predeclarations */
150
151 #if PY_MAJOR_VERSION < 3
152 #define __Pyx_PyBytes_FromString PyString_FromString
153 #define __Pyx_PyBytes_AsString   PyString_AsString
154 #else
155 #define __Pyx_PyBytes_FromString PyBytes_FromString
156 #define __Pyx_PyBytes_AsString   PyBytes_AsString
157 #endif
158
159 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
160 static INLINE int __Pyx_PyObject_IsTrue(PyObject* x);
161 static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x);
162 static INLINE unsigned PY_LONG_LONG __pyx_PyInt_AsUnsignedLongLong(PyObject* x);
163 static INLINE Py_ssize_t __pyx_PyIndex_AsSsize_t(PyObject* b);
164
165 #define __pyx_PyInt_AsLong(x) (PyInt_CheckExact(x) ? PyInt_AS_LONG(x) : PyInt_AsLong(x))
166 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
167
168 static INLINE unsigned char __pyx_PyInt_unsigned_char(PyObject* x);
169 static INLINE unsigned short __pyx_PyInt_unsigned_short(PyObject* x);
170 static INLINE char __pyx_PyInt_char(PyObject* x);
171 static INLINE short __pyx_PyInt_short(PyObject* x);
172 static INLINE int __pyx_PyInt_int(PyObject* x);
173 static INLINE long __pyx_PyInt_long(PyObject* x);
174 static INLINE signed char __pyx_PyInt_signed_char(PyObject* x);
175 static INLINE signed short __pyx_PyInt_signed_short(PyObject* x);
176 static INLINE signed int __pyx_PyInt_signed_int(PyObject* x);
177 static INLINE signed long __pyx_PyInt_signed_long(PyObject* x);
178 static INLINE long double __pyx_PyInt_long_double(PyObject* x);
179 #ifdef __GNUC__
180 /* Test for GCC > 2.95 */
181 #if __GNUC__ > 2 ||               (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
182 #define likely(x)   __builtin_expect(!!(x), 1)
183 #define unlikely(x) __builtin_expect(!!(x), 0)
184 #else /* __GNUC__ > 2 ... */
185 #define likely(x)   (x)
186 #define unlikely(x) (x)
187 #endif /* __GNUC__ > 2 ... */
188 #else /* __GNUC__ */
189 #define likely(x)   (x)
190 #define unlikely(x) (x)
191 #endif /* __GNUC__ */
192     
193 static PyObject *__pyx_m;
194 static PyObject *__pyx_b;
195 static PyObject *__pyx_empty_tuple;
196 static int __pyx_lineno;
197 static int __pyx_clineno = 0;
198 static const char * __pyx_cfilenm= __FILE__;
199 static const char *__pyx_filename;
200 static const char **__pyx_f;
201
202 static INLINE void __Pyx_RaiseArgtupleTooLong(Py_ssize_t num_expected, Py_ssize_t num_found); /*proto*/
203
204 #if PY_VERSION_HEX >= 0x02060000
205 /* #define __Pyx_TypeModified(t) PyType_Modified(t) */  /* Py3.0beta1 */
206 static void __Pyx_TypeModified(PyTypeObject* type); /*proto*/
207 #else
208   #define __Pyx_TypeModified(t)
209 #endif
210
211 static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
212
213 static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name, int exact); /*proto*/
214
215 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
216
217 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
218
219 static void __Pyx_WriteUnraisable(const char *name); /*proto*/
220
221 static INLINE PyObject *__Pyx_GetItemInt(PyObject *o, Py_ssize_t i, int is_unsigned) {
222     PyObject *r;
223     if (PyList_CheckExact(o) && 0 <= i && i < PyList_GET_SIZE(o)) {
224         r = PyList_GET_ITEM(o, i);
225         Py_INCREF(r);
226     }
227     else if (PyTuple_CheckExact(o) && 0 <= i && i < PyTuple_GET_SIZE(o)) {
228         r = PyTuple_GET_ITEM(o, i);
229         Py_INCREF(r);
230     }
231     else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0) || !is_unsigned))
232         r = PySequence_GetItem(o, i);
233     else {
234         PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) : PyLong_FromUnsignedLongLong((sizeof(unsigned long long) > sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
235         if (!j)
236             return 0;
237         r = PyObject_GetItem(o, j);
238         Py_DECREF(j);
239     }
240     return r;
241 }
242
243 static INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
244     if (likely(PyList_CheckExact(L))) {
245         if (PyList_Append(L, x) < 0) return NULL;
246         Py_INCREF(Py_None);
247         return Py_None; // this is just to have an accurate signature
248     }
249     else {
250         return PyObject_CallMethod(L, "append", "(O)", x);
251     }
252 }
253
254 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
255
256 static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
257
258 static void __Pyx_AddTraceback(const char *funcname); /*proto*/
259
260 /* Type declarations */
261
262 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/buddy.pyx":22
263  * cimport purple
264  * 
265  * cdef class Buddy:             # <<<<<<<<<<<<<<
266  *     """
267  *     Buddy class
268  */
269
270 struct __pyx_obj_6purple_Buddy {
271   PyObject_HEAD
272   struct __pyx_vtabstruct_6purple_Buddy *__pyx_vtab;
273   PyObject *__account;
274   PyObject *__name;
275   PyObject *__exists;
276 };
277
278 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/purple.pyx":61
279  * include "util.pxd"
280  * 
281  * cdef class Purple:             # <<<<<<<<<<<<<<
282  *     """ Purple class.
283  * 
284  */
285
286 struct __pyx_obj_6purple_Purple {
287   PyObject_HEAD
288   struct __pyx_vtabstruct_6purple_Purple *__pyx_vtab;
289 };
290
291 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/proxy.pyx":56
292  *     USE_ENVVAR = property(get_USE_ENVVAR)
293  * 
294  * cdef class ProxyInfo:             # <<<<<<<<<<<<<<
295  * 
296  *     cdef proxy.PurpleProxyInfo *c_proxyinfo
297  */
298
299 struct __pyx_obj_6purple_ProxyInfo {
300   PyObject_HEAD
301   PurpleProxyInfo *c_proxyinfo;
302   PyObject *types;
303 };
304
305 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/protocol.pyx":22
306  * cimport purple
307  * 
308  * cdef class Protocol:             # <<<<<<<<<<<<<<
309  *     """
310  *     Protocol class
311  */
312
313 struct __pyx_obj_6purple_Protocol {
314   PyObject_HEAD
315   struct __pyx_vtabstruct_6purple_Protocol *__pyx_vtab;
316   PyObject *__id;
317   PyObject *__exists;
318 };
319
320 struct __pyx_obj_6purple_ProxyInfoType {
321   PyObject_HEAD
322   PurpleProxyType c_type;
323 };
324
325 struct __pyx_obj_6purple_Conversation {
326   PyObject_HEAD
327   struct __pyx_vtabstruct_6purple_Conversation *__pyx_vtab;
328   PyObject *__account;
329   PyObject *__name;
330   PyObject *__type;
331   PyObject *__exists;
332 };
333
334 struct __pyx_obj_6purple_Account {
335   PyObject_HEAD
336   struct __pyx_vtabstruct_6purple_Account *__pyx_vtab;
337   PyObject *__username;
338   PyObject *__protocol;
339   PyObject *__core;
340   PyObject *__exists;
341 };
342
343
344 struct __pyx_vtabstruct_6purple_Protocol {
345   PurplePlugin *(*_get_structure)(struct __pyx_obj_6purple_Protocol *);
346 };
347 static struct __pyx_vtabstruct_6purple_Protocol *__pyx_vtabptr_6purple_Protocol;
348
349
350 struct __pyx_vtabstruct_6purple_Buddy {
351   PurpleBuddy *(*_get_structure)(struct __pyx_obj_6purple_Buddy *);
352 };
353 static struct __pyx_vtabstruct_6purple_Buddy *__pyx_vtabptr_6purple_Buddy;
354
355
356 struct __pyx_vtabstruct_6purple_Conversation {
357   PurpleConversation *(*_get_structure)(struct __pyx_obj_6purple_Conversation *);
358 };
359 static struct __pyx_vtabstruct_6purple_Conversation *__pyx_vtabptr_6purple_Conversation;
360
361
362 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/purple.pyx":61
363  * include "util.pxd"
364  * 
365  * cdef class Purple:             # <<<<<<<<<<<<<<
366  *     """ Purple class.
367  * 
368  */
369
370 struct __pyx_vtabstruct_6purple_Purple {
371   void (*__core_ui_ops_ui_prefs_init)(struct __pyx_obj_6purple_Purple *);
372   void (*__core_ui_ops_debug_init)(struct __pyx_obj_6purple_Purple *);
373   void (*__core_ui_ops_ui_init)(struct __pyx_obj_6purple_Purple *);
374   void (*__core_ui_ops_quit)(struct __pyx_obj_6purple_Purple *);
375   GHashTable *(*__core_ui_ops_get_ui_info)(struct __pyx_obj_6purple_Purple *);
376 };
377 static struct __pyx_vtabstruct_6purple_Purple *__pyx_vtabptr_6purple_Purple;
378
379
380 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account.pyx":22
381  * cimport purple
382  * 
383  * cdef class Account:             # <<<<<<<<<<<<<<
384  *     """
385  *     Account class
386  */
387
388 struct __pyx_vtabstruct_6purple_Account {
389   PurpleAccount *(*_get_structure)(struct __pyx_obj_6purple_Account *);
390 };
391 static struct __pyx_vtabstruct_6purple_Account *__pyx_vtabptr_6purple_Account;
392 /* Module declarations from glib */
393
394 /* Module declarations from account */
395
396 /* Module declarations from prefs */
397
398 /* Module declarations from accountopt */
399
400 /* Module declarations from buddyicon */
401
402 /* Module declarations from blist */
403
404 /* Module declarations from prpl */
405
406 /* Module declarations from plugin */
407
408 /* Module declarations from connection */
409
410 /* Module declarations from conversation */
411
412 /* Module declarations from core */
413
414 /* Module declarations from debug */
415
416 /* Module declarations from eventloop */
417
418 /* Module declarations from ft */
419
420 /* Module declarations from idle */
421
422 /* Module declarations from notify */
423
424 /* Module declarations from pounce */
425
426 /* Module declarations from privacy */
427
428 /* Module declarations from proxy */
429
430 /* Module declarations from request */
431
432 /* Module declarations from roomlist */
433
434 /* Module declarations from server */
435
436 /* Module declarations from signals */
437
438 /* Module declarations from value */
439
440 /* Module declarations from status */
441
442 /* Module declarations from savedstatuses */
443
444 /* Module declarations from xmlnode */
445
446 /* Module declarations from util */
447
448 /* Module declarations from purple */
449
450 static PyTypeObject *__pyx_ptype_6purple_Purple = 0;
451 static PyTypeObject *__pyx_ptype_6purple_Protocol = 0;
452 static PyTypeObject *__pyx_ptype_6purple_ProxyInfoType = 0;
453 static PyTypeObject *__pyx_ptype_6purple_ProxyInfo = 0;
454 static PyTypeObject *__pyx_ptype_6purple_Account = 0;
455 static PyTypeObject *__pyx_ptype_6purple_Buddy = 0;
456 static PyTypeObject *__pyx_ptype_6purple_Conversation = 0;
457 static GHashTable *__pyx_v_6purple_c_ui_info;
458 static char *__pyx_v_6purple_c_ui_name;
459 static char *__pyx_v_6purple_c_ui_version;
460 static char *__pyx_v_6purple_c_ui_website;
461 static char *__pyx_v_6purple_c_ui_dev_website;
462 static PurpleAccountUiOps __pyx_v_6purple_c_account_ui_ops;
463 static PurpleBlistUiOps __pyx_v_6purple_c_blist_ui_ops;
464 static PurpleConnectionUiOps __pyx_v_6purple_c_conn_ui_ops;
465 static PurpleConversationUiOps __pyx_v_6purple_c_conv_ui_ops;
466 static PurpleCoreUiOps __pyx_v_6purple_c_core_ui_ops;
467 static PurpleEventLoopUiOps __pyx_v_6purple_c_eventloop_ui_ops;
468 static PurpleNotifyUiOps __pyx_v_6purple_c_notify_ui_ops;
469 static PurpleRequestUiOps __pyx_v_6purple_c_request_ui_ops;
470 static PurpleAccountRequestAuthorizationCb __pyx_v_6purple_c_request_authorize_authorize_cb;
471 static PurpleAccountRequestAuthorizationCb __pyx_v_6purple_c_request_authorize_deny_cb;
472 static void *__pyx_v_6purple_c_request_authorize_user_data;
473 static void __pyx_f_6purple_notify_added(PurpleAccount *, const char *, const char *, const char *, const char *); /*proto*/
474 static void __pyx_f_6purple_status_changed(PurpleAccount *, PurpleStatus *); /*proto*/
475 static void __pyx_f_6purple_request_add(PurpleAccount *, const char *, const char *, const char *, const char *); /*proto*/
476 static void *__pyx_f_6purple_request_authorize(PurpleAccount *, const char *, const char *, const char *, const char *, gboolean, PurpleAccountRequestAuthorizationCb, PurpleAccountRequestAuthorizationCb, void *); /*proto*/
477 static void __pyx_f_6purple_close_account_request(void *); /*proto*/
478 static void __pyx_f_6purple___group_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
479 static void __pyx_f_6purple___contact_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
480 static void __pyx_f_6purple___buddy_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
481 static void __pyx_f_6purple___chat_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
482 static void __pyx_f_6purple___other_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
483 static void __pyx_f_6purple_new_list(PurpleBuddyList *); /*proto*/
484 static void __pyx_f_6purple_new_node(PurpleBlistNode *); /*proto*/
485 static void __pyx_f_6purple_show(PurpleBuddyList *); /*proto*/
486 static void __pyx_f_6purple_update(PurpleBuddyList *, PurpleBlistNode *); /*proto*/
487 static void __pyx_f_6purple_remove(PurpleBuddyList *, PurpleBlistNode *); /*proto*/
488 static void __pyx_f_6purple_destroy(PurpleBuddyList *); /*proto*/
489 static void __pyx_f_6purple_set_visible(PurpleBuddyList *, gboolean); /*proto*/
490 static void __pyx_f_6purple_request_add_buddy(PurpleAccount *, const char *, const char *, const char *); /*proto*/
491 static void __pyx_f_6purple_request_add_chat(PurpleAccount *, PurpleGroup *, const char *, const char *); /*proto*/
492 static void __pyx_f_6purple_request_add_group(void); /*proto*/
493 static void __pyx_f_6purple_connect_progress(PurpleConnection *, const char *, size_t, size_t); /*proto*/
494 static void __pyx_f_6purple_connected(PurpleConnection *); /*proto*/
495 static void __pyx_f_6purple_disconnected(PurpleConnection *); /*proto*/
496 static void __pyx_f_6purple_notice(PurpleConnection *, const char *); /*proto*/
497 static void __pyx_f_6purple_report_disconnect(PurpleConnection *, const char *); /*proto*/
498 static void __pyx_f_6purple_network_connected(void); /*proto*/
499 static void __pyx_f_6purple_network_disconnected(void); /*proto*/
500 static void __pyx_f_6purple_report_disconnect_reason(PurpleConnection *, PurpleConnectionError, const char *); /*proto*/
501 static void __pyx_f_6purple_create_conversation(PurpleConversation *); /*proto*/
502 static void __pyx_f_6purple_destroy_conversation(PurpleConversation *); /*proto*/
503 static void __pyx_f_6purple_write_chat(PurpleConversation *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
504 static void __pyx_f_6purple_write_im(PurpleConversation *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
505 static void __pyx_f_6purple_write_conv(PurpleConversation *, const char *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
506 static void __pyx_f_6purple_chat_add_users(PurpleConversation *, GList *, gboolean); /*proto*/
507 static void __pyx_f_6purple_chat_rename_user(PurpleConversation *, const char *, const char *, const char *); /*proto*/
508 static void __pyx_f_6purple_chat_remove_users(PurpleConversation *, GList *); /*proto*/
509 static void __pyx_f_6purple_chat_update_user(PurpleConversation *, const char *); /*proto*/
510 static void __pyx_f_6purple_present(PurpleConversation *); /*proto*/
511 static gboolean __pyx_f_6purple_has_focus(PurpleConversation *); /*proto*/
512 static gboolean __pyx_f_6purple_custom_smiley_add(PurpleConversation *, const char *, gboolean); /*proto*/
513 static void __pyx_f_6purple_custom_smiley_write(PurpleConversation *, const char *, const guchar *, gsize); /*proto*/
514 static void __pyx_f_6purple_custom_smiley_close(PurpleConversation *, const char *); /*proto*/
515 static void __pyx_f_6purple_send_confirm(PurpleConversation *, const char *); /*proto*/
516 static void *__pyx_f_6purple_notify_message(PurpleNotifyMsgType, const char *, const char *, const char *); /*proto*/
517 static void *__pyx_f_6purple_notify_email(PurpleConnection *, const char *, const char *, const char *, const char *); /*proto*/
518 static void *__pyx_f_6purple_notify_emails(PurpleConnection *, size_t, gboolean, const char **, const char **, const char **, const char **); /*proto*/
519 static void *__pyx_f_6purple_notify_formatted(const char *, const char *, const char *, const char *); /*proto*/
520 static void *__pyx_f_6purple_notify_searchresults(PurpleConnection *, const char *, const char *, const char *, PurpleNotifySearchResults *, gpointer); /*proto*/
521 static void __pyx_f_6purple_notify_searchresults_new_rows(PurpleConnection *, PurpleNotifySearchResults *, void *); /*proto*/
522 static void *__pyx_f_6purple_notify_userinfo(PurpleConnection *, const char *, PurpleNotifyUserInfo *); /*proto*/
523 static void *__pyx_f_6purple_notify_uri(const char *); /*proto*/
524 static void __pyx_f_6purple_close_notify(PurpleNotifyType, void *); /*proto*/
525 static void *__pyx_f_6purple_request_input(const char *, const char *, const char *, const char *, gboolean, gboolean, gchar *, const char *, GCallback, const char *, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
526 static void *__pyx_f_6purple_request_choice(const char *, const char *, const char *, int, const char *, GCallback, const char *, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *, va_list); /*proto*/
527 static void *__pyx_f_6purple_request_action(const char *, const char *, const char *, int, PurpleAccount *, const char *, PurpleConversation *, void *, size_t, va_list); /*proto*/
528 static void *__pyx_f_6purple_request_fields(const char *, const char *, const char *, PurpleRequestFields *, const char *, GCallback, const char *, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
529 static void *__pyx_f_6purple_request_file(const char *, const char *, gboolean, GCallback, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
530 static void __pyx_f_6purple_close_request(PurpleRequestType, void *); /*proto*/
531 static void *__pyx_f_6purple_request_folder(const char *, const char *, GCallback, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
532 static void __pyx_f_6purple_signal_signed_on_cb(PurpleConnection *, gpointer); /*proto*/
533 static void __pyx_f_6purple_signal_signed_off_cb(PurpleConnection *, gpointer); /*proto*/
534 static void __pyx_f_6purple_signal_connection_error_cb(PurpleConnection *, PurpleConnectionError, const gchar *); /*proto*/
535 static void __pyx_f_6purple_signal_buddy_signed_on_cb(PurpleBuddy *); /*proto*/
536 static void __pyx_f_6purple_signal_buddy_signed_off_cb(PurpleBuddy *); /*proto*/
537 static gboolean __pyx_f_6purple_signal_receiving_im_msg_cb(PurpleAccount *, char **, char **, PurpleConversation *, PurpleMessageFlags *); /*proto*/
538 static void __pyx_f_6purple_jabber_receiving_xmlnode_cb(PurpleConnection *, xmlnode **, gpointer); /*proto*/
539
540
541 /* Implementation of purple */
542
543
544 static char __pyx_k___init__[] = "__init__";
545 static char __pyx_k_destroy[] = "destroy";
546 static char __pyx_k___get_ui_name[] = "__get_ui_name";
547 static char __pyx_k_ui_name[] = "ui_name";
548 static char __pyx_k_1[] = "__glib_iteration_when_idle";
549 static char __pyx_k_purple_init[] = "purple_init";
550 static char __pyx_k_add_callback[] = "add_callback";
551 static char __pyx_k_signal_connect[] = "signal_connect";
552 static char __pyx_k_accounts_get_all[] = "accounts_get_all";
553 static char __pyx_k_2[] = "accounts_get_all_active";
554 static char __pyx_k_protocols_get_all[] = "protocols_get_all";
555 static char __pyx_k___get_exists[] = "__get_exists";
556 static char __pyx_k_exists[] = "exists";
557 static char __pyx_k___get_id[] = "__get_id";
558 static char __pyx_k_id[] = "id";
559 static char __pyx_k___get_name[] = "__get_name";
560 static char __pyx_k_name[] = "name";
561 static char __pyx_k_3[] = "__get_options_labels";
562 static char __pyx_k_options_labels[] = "options_labels";
563 static char __pyx_k_4[] = "__get_options_values";
564 static char __pyx_k_options_values[] = "options_values";
565 static char __pyx_k_get_NONE[] = "get_NONE";
566 static char __pyx_k_NONE[] = "NONE";
567 static char __pyx_k_get_USE_GLOBAL[] = "get_USE_GLOBAL";
568 static char __pyx_k_USE_GLOBAL[] = "USE_GLOBAL";
569 static char __pyx_k_get_HTTP[] = "get_HTTP";
570 static char __pyx_k_HTTP[] = "HTTP";
571 static char __pyx_k_5[] = "get_SOCKS4";
572 static char __pyx_k_6[] = "get_SOCKS5";
573 static char __pyx_k_get_USE_ENVVAR[] = "get_USE_ENVVAR";
574 static char __pyx_k_USE_ENVVAR[] = "USE_ENVVAR";
575 static char __pyx_k_set_type[] = "set_type";
576 static char __pyx_k_set_host[] = "set_host";
577 static char __pyx_k_set_port[] = "set_port";
578 static char __pyx_k_set_username[] = "set_username";
579 static char __pyx_k_set_password[] = "set_password";
580 static char __pyx_k_get_types[] = "get_types";
581 static char __pyx_k_set_info[] = "set_info";
582 static char __pyx_k___is_connected[] = "__is_connected";
583 static char __pyx_k_is_connected[] = "is_connected";
584 static char __pyx_k___is_connecting[] = "__is_connecting";
585 static char __pyx_k_is_connecting[] = "is_connecting";
586 static char __pyx_k___is_disconnected[] = "__is_disconnected";
587 static char __pyx_k_is_disconnected[] = "is_disconnected";
588 static char __pyx_k___get_core[] = "__get_core";
589 static char __pyx_k_core[] = "core";
590 static char __pyx_k___get_username[] = "__get_username";
591 static char __pyx_k_username[] = "username";
592 static char __pyx_k___get_protocol[] = "__get_protocol";
593 static char __pyx_k_protocol[] = "protocol";
594 static char __pyx_k_7[] = "_get_protocol_options";
595 static char __pyx_k_protocol_options[] = "protocol_options";
596 static char __pyx_k___get_password[] = "__get_password";
597 static char __pyx_k_password[] = "password";
598 static char __pyx_k___get_alias[] = "__get_alias";
599 static char __pyx_k_alias[] = "alias";
600 static char __pyx_k___get_user_info[] = "__get_user_info";
601 static char __pyx_k_user_info[] = "user_info";
602 static char __pyx_k_8[] = "__get_remember_password";
603 static char __pyx_k_remember_password[] = "remember_password";
604 static char __pyx_k___get_enabled[] = "__get_enabled";
605 static char __pyx_k_enabled[] = "enabled";
606 static char __pyx_k___get_status_types[] = "__get_status_types";
607 static char __pyx_k_status_types[] = "status_types";
608 static char __pyx_k___get_active_status[] = "__get_active_status";
609 static char __pyx_k_active_status[] = "active_status";
610 static char __pyx_k_set_protocol[] = "set_protocol";
611 static char __pyx_k_9[] = "set_protocol_options";
612 static char __pyx_k_set_alias[] = "set_alias";
613 static char __pyx_k_set_user_info[] = "set_user_info";
614 static char __pyx_k_10[] = "set_remember_password";
615 static char __pyx_k_set_enabled[] = "set_enabled";
616 static char __pyx_k_new[] = "new";
617 static char __pyx_k_remove[] = "remove";
618 static char __pyx_k_connect[] = "connect";
619 static char __pyx_k_disconnect[] = "disconnect";
620 static char __pyx_k_add_buddy[] = "add_buddy";
621 static char __pyx_k_remove_buddy[] = "remove_buddy";
622 static char __pyx_k_get_buddies_online[] = "get_buddies_online";
623 static char __pyx_k_get_buddies[] = "get_buddies";
624 static char __pyx_k_request_add_buddy[] = "request_add_buddy";
625 static char __pyx_k_set_active_status[] = "set_active_status";
626 static char __pyx_k_set_status_message[] = "set_status_message";
627 static char __pyx_k___get_account[] = "__get_account";
628 static char __pyx_k_account[] = "account";
629 static char __pyx_k___get_group[] = "__get_group";
630 static char __pyx_k_group[] = "group";
631 static char __pyx_k___get_server_alias[] = "__get_server_alias";
632 static char __pyx_k_server_alias[] = "server_alias";
633 static char __pyx_k___get_contact_alias[] = "__get_contact_alias";
634 static char __pyx_k_contact_alias[] = "contact_alias";
635 static char __pyx_k___get_local_alias[] = "__get_local_alias";
636 static char __pyx_k_local_alias[] = "local_alias";
637 static char __pyx_k___get_available[] = "__get_available";
638 static char __pyx_k_available[] = "available";
639 static char __pyx_k___get_online[] = "__get_online";
640 static char __pyx_k_online[] = "online";
641 static char __pyx_k___get_idle[] = "__get_idle";
642 static char __pyx_k_idle[] = "idle";
643 static char __pyx_k_set_group[] = "set_group";
644 static char __pyx_k_set_ui_ops[] = "set_ui_ops";
645 static char __pyx_k_im_send[] = "im_send";
646 static char __pyx_k_ecore[] = "ecore";
647 static char __pyx_k_account_cbs[] = "account_cbs";
648 static char __pyx_k_blist_cbs[] = "blist_cbs";
649 static char __pyx_k_connection_cbs[] = "connection_cbs";
650 static char __pyx_k_conversation_cbs[] = "conversation_cbs";
651 static char __pyx_k_notify_cbs[] = "notify_cbs";
652 static char __pyx_k_request_cbs[] = "request_cbs";
653 static char __pyx_k_signal_cbs[] = "signal_cbs";
654 static char __pyx_k_property[] = "property";
655
656 static PyObject *__pyx_kp___init__;
657 static PyObject *__pyx_kp_destroy;
658 static PyObject *__pyx_kp___get_ui_name;
659 static PyObject *__pyx_kp_ui_name;
660 static PyObject *__pyx_kp_1;
661 static PyObject *__pyx_kp_purple_init;
662 static PyObject *__pyx_kp_add_callback;
663 static PyObject *__pyx_kp_signal_connect;
664 static PyObject *__pyx_kp_accounts_get_all;
665 static PyObject *__pyx_kp_2;
666 static PyObject *__pyx_kp_protocols_get_all;
667 static PyObject *__pyx_kp___get_exists;
668 static PyObject *__pyx_kp_exists;
669 static PyObject *__pyx_kp___get_id;
670 static PyObject *__pyx_kp_id;
671 static PyObject *__pyx_kp___get_name;
672 static PyObject *__pyx_kp_name;
673 static PyObject *__pyx_kp_3;
674 static PyObject *__pyx_kp_options_labels;
675 static PyObject *__pyx_kp_4;
676 static PyObject *__pyx_kp_options_values;
677 static PyObject *__pyx_kp_get_NONE;
678 static PyObject *__pyx_kp_NONE;
679 static PyObject *__pyx_kp_get_USE_GLOBAL;
680 static PyObject *__pyx_kp_USE_GLOBAL;
681 static PyObject *__pyx_kp_get_HTTP;
682 static PyObject *__pyx_kp_HTTP;
683 static PyObject *__pyx_kp_5;
684 static PyObject *__pyx_kp_6;
685 static PyObject *__pyx_kp_get_USE_ENVVAR;
686 static PyObject *__pyx_kp_USE_ENVVAR;
687 static PyObject *__pyx_kp_set_type;
688 static PyObject *__pyx_kp_set_host;
689 static PyObject *__pyx_kp_set_port;
690 static PyObject *__pyx_kp_set_username;
691 static PyObject *__pyx_kp_set_password;
692 static PyObject *__pyx_kp_get_types;
693 static PyObject *__pyx_kp_set_info;
694 static PyObject *__pyx_kp___is_connected;
695 static PyObject *__pyx_kp_is_connected;
696 static PyObject *__pyx_kp___is_connecting;
697 static PyObject *__pyx_kp_is_connecting;
698 static PyObject *__pyx_kp___is_disconnected;
699 static PyObject *__pyx_kp_is_disconnected;
700 static PyObject *__pyx_kp___get_core;
701 static PyObject *__pyx_kp_core;
702 static PyObject *__pyx_kp___get_username;
703 static PyObject *__pyx_kp_username;
704 static PyObject *__pyx_kp___get_protocol;
705 static PyObject *__pyx_kp_protocol;
706 static PyObject *__pyx_kp_7;
707 static PyObject *__pyx_kp_protocol_options;
708 static PyObject *__pyx_kp___get_password;
709 static PyObject *__pyx_kp_password;
710 static PyObject *__pyx_kp___get_alias;
711 static PyObject *__pyx_kp_alias;
712 static PyObject *__pyx_kp___get_user_info;
713 static PyObject *__pyx_kp_user_info;
714 static PyObject *__pyx_kp_8;
715 static PyObject *__pyx_kp_remember_password;
716 static PyObject *__pyx_kp___get_enabled;
717 static PyObject *__pyx_kp_enabled;
718 static PyObject *__pyx_kp___get_status_types;
719 static PyObject *__pyx_kp_status_types;
720 static PyObject *__pyx_kp___get_active_status;
721 static PyObject *__pyx_kp_active_status;
722 static PyObject *__pyx_kp_set_protocol;
723 static PyObject *__pyx_kp_9;
724 static PyObject *__pyx_kp_set_alias;
725 static PyObject *__pyx_kp_set_user_info;
726 static PyObject *__pyx_kp_10;
727 static PyObject *__pyx_kp_set_enabled;
728 static PyObject *__pyx_kp_new;
729 static PyObject *__pyx_kp_remove;
730 static PyObject *__pyx_kp_connect;
731 static PyObject *__pyx_kp_disconnect;
732 static PyObject *__pyx_kp_add_buddy;
733 static PyObject *__pyx_kp_remove_buddy;
734 static PyObject *__pyx_kp_get_buddies_online;
735 static PyObject *__pyx_kp_get_buddies;
736 static PyObject *__pyx_kp_request_add_buddy;
737 static PyObject *__pyx_kp_set_active_status;
738 static PyObject *__pyx_kp_set_status_message;
739 static PyObject *__pyx_kp___get_account;
740 static PyObject *__pyx_kp_account;
741 static PyObject *__pyx_kp___get_group;
742 static PyObject *__pyx_kp_group;
743 static PyObject *__pyx_kp___get_server_alias;
744 static PyObject *__pyx_kp_server_alias;
745 static PyObject *__pyx_kp___get_contact_alias;
746 static PyObject *__pyx_kp_contact_alias;
747 static PyObject *__pyx_kp___get_local_alias;
748 static PyObject *__pyx_kp_local_alias;
749 static PyObject *__pyx_kp___get_available;
750 static PyObject *__pyx_kp_available;
751 static PyObject *__pyx_kp___get_online;
752 static PyObject *__pyx_kp_online;
753 static PyObject *__pyx_kp___get_idle;
754 static PyObject *__pyx_kp_idle;
755 static PyObject *__pyx_kp_set_group;
756 static PyObject *__pyx_kp_set_ui_ops;
757 static PyObject *__pyx_kp_im_send;
758 static PyObject *__pyx_kp_ecore;
759 static PyObject *__pyx_kp_account_cbs;
760 static PyObject *__pyx_kp_blist_cbs;
761 static PyObject *__pyx_kp_connection_cbs;
762 static PyObject *__pyx_kp_conversation_cbs;
763 static PyObject *__pyx_kp_notify_cbs;
764 static PyObject *__pyx_kp_request_cbs;
765 static PyObject *__pyx_kp_signal_cbs;
766 static PyObject *__pyx_kp_property;
767
768
769 static PyObject *__pyx_builtin_property;
770
771 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":31
772  * cdef void *c_request_authorize_user_data = NULL
773  * 
774  * def call_authorize_cb():             # <<<<<<<<<<<<<<
775  *     global c_request_authorize_authorize_cb
776  *     global c_request_authorize_deny_cb
777  */
778
779 static PyObject *__pyx_pf_6purple_call_authorize_cb(PyObject *__pyx_self, PyObject *unused); /*proto*/
780 static PyObject *__pyx_pf_6purple_call_authorize_cb(PyObject *__pyx_self, PyObject *unused) {
781   PyObject *__pyx_r;
782   int __pyx_1;
783
784   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":36
785  *     global c_request_authorize_user_data
786  * 
787  *     if c_request_authorize_authorize_cb:             # <<<<<<<<<<<<<<
788  *         c_request_authorize_authorize_cb(c_request_authorize_user_data)
789  *     c_request_authorize_authorize_cb = NULL
790  */
791   __pyx_1 = (__pyx_v_6purple_c_request_authorize_authorize_cb != 0);
792   if (__pyx_1) {
793
794     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":37
795  * 
796  *     if c_request_authorize_authorize_cb:
797  *         c_request_authorize_authorize_cb(c_request_authorize_user_data)             # <<<<<<<<<<<<<<
798  *     c_request_authorize_authorize_cb = NULL
799  *     c_request_authorize_deny_cb = NULL
800  */
801     __pyx_v_6purple_c_request_authorize_authorize_cb(__pyx_v_6purple_c_request_authorize_user_data);
802     goto __pyx_L4;
803   }
804   __pyx_L4:;
805
806   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":38
807  *     if c_request_authorize_authorize_cb:
808  *         c_request_authorize_authorize_cb(c_request_authorize_user_data)
809  *     c_request_authorize_authorize_cb = NULL             # <<<<<<<<<<<<<<
810  *     c_request_authorize_deny_cb = NULL
811  *     c_request_authorize_user_data = NULL
812  */
813   __pyx_v_6purple_c_request_authorize_authorize_cb = NULL;
814
815   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":39
816  *         c_request_authorize_authorize_cb(c_request_authorize_user_data)
817  *     c_request_authorize_authorize_cb = NULL
818  *     c_request_authorize_deny_cb = NULL             # <<<<<<<<<<<<<<
819  *     c_request_authorize_user_data = NULL
820  * 
821  */
822   __pyx_v_6purple_c_request_authorize_deny_cb = NULL;
823
824   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":40
825  *     c_request_authorize_authorize_cb = NULL
826  *     c_request_authorize_deny_cb = NULL
827  *     c_request_authorize_user_data = NULL             # <<<<<<<<<<<<<<
828  * 
829  * def call_deny_cb():
830  */
831   __pyx_v_6purple_c_request_authorize_user_data = NULL;
832
833   __pyx_r = Py_None; Py_INCREF(Py_None);
834   return __pyx_r;
835 }
836
837 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":42
838  *     c_request_authorize_user_data = NULL
839  * 
840  * def call_deny_cb():             # <<<<<<<<<<<<<<
841  *     global c_request_authorize_authorize_cb
842  *     global c_request_authorize_deny_cb
843  */
844
845 static PyObject *__pyx_pf_6purple_call_deny_cb(PyObject *__pyx_self, PyObject *unused); /*proto*/
846 static PyObject *__pyx_pf_6purple_call_deny_cb(PyObject *__pyx_self, PyObject *unused) {
847   PyObject *__pyx_r;
848   int __pyx_1;
849
850   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":47
851  *     global c_request_authorize_user_data
852  * 
853  *     if c_request_authorize_deny_cb:             # <<<<<<<<<<<<<<
854  *         c_request_authorize_deny_cb(c_request_authorize_user_data)
855  *     c_request_authorize_authorize_cb = NULL
856  */
857   __pyx_1 = (__pyx_v_6purple_c_request_authorize_deny_cb != 0);
858   if (__pyx_1) {
859
860     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":48
861  * 
862  *     if c_request_authorize_deny_cb:
863  *         c_request_authorize_deny_cb(c_request_authorize_user_data)             # <<<<<<<<<<<<<<
864  *     c_request_authorize_authorize_cb = NULL
865  *     c_request_authorize_deny_cb = NULL
866  */
867     __pyx_v_6purple_c_request_authorize_deny_cb(__pyx_v_6purple_c_request_authorize_user_data);
868     goto __pyx_L4;
869   }
870   __pyx_L4:;
871
872   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":49
873  *     if c_request_authorize_deny_cb:
874  *         c_request_authorize_deny_cb(c_request_authorize_user_data)
875  *     c_request_authorize_authorize_cb = NULL             # <<<<<<<<<<<<<<
876  *     c_request_authorize_deny_cb = NULL
877  *     c_request_authorize_user_data = NULL
878  */
879   __pyx_v_6purple_c_request_authorize_authorize_cb = NULL;
880
881   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":50
882  *         c_request_authorize_deny_cb(c_request_authorize_user_data)
883  *     c_request_authorize_authorize_cb = NULL
884  *     c_request_authorize_deny_cb = NULL             # <<<<<<<<<<<<<<
885  *     c_request_authorize_user_data = NULL
886  * 
887  */
888   __pyx_v_6purple_c_request_authorize_deny_cb = NULL;
889
890   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":51
891  *     c_request_authorize_authorize_cb = NULL
892  *     c_request_authorize_deny_cb = NULL
893  *     c_request_authorize_user_data = NULL             # <<<<<<<<<<<<<<
894  * 
895  * cdef void notify_added(account.PurpleAccount *c_account, \
896  */
897   __pyx_v_6purple_c_request_authorize_user_data = NULL;
898
899   __pyx_r = Py_None; Py_INCREF(Py_None);
900   return __pyx_r;
901 }
902
903 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":53
904  *     c_request_authorize_user_data = NULL
905  * 
906  * cdef void notify_added(account.PurpleAccount *c_account, \             # <<<<<<<<<<<<<<
907  *         const_char *remote_user, const_char *id, const_char *alias, \
908  *         const_char *c_message):
909  */
910
911 static char __pyx_k_has_key[] = "has_key";
912
913 static PyObject *__pyx_kp_has_key;
914
915 static PyObject *__pyx_kp_14;
916 static PyObject *__pyx_kp_15;
917
918 static char __pyx_k_11[] = "account";
919 static char __pyx_k_12[] = "%s";
920 static char __pyx_k_13[] = "notify-added\n";
921 static char __pyx_k_14[] = "notify-added";
922 static char __pyx_k_15[] = "notify-added";
923
924 static  void __pyx_f_6purple_notify_added(PurpleAccount *__pyx_v_c_account, const char *__pyx_v_remote_user, const char *__pyx_v_id, const char *__pyx_v_alias, const char *__pyx_v_c_message) {
925   PurpleConnection *__pyx_v_gc;
926   PyObject *__pyx_v_remote_alias;
927   PyObject *__pyx_v_username;
928   PyObject *__pyx_v_protocol_id;
929   PyObject *__pyx_v_message;
930   int __pyx_1;
931   PyObject *__pyx_2 = 0;
932   PyObject *__pyx_3 = 0;
933   PyObject *__pyx_4 = 0;
934   PyObject *__pyx_5 = 0;
935   __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
936   __pyx_v_username = Py_None; Py_INCREF(Py_None);
937   __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
938   __pyx_v_message = Py_None; Py_INCREF(Py_None);
939
940   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":61
941  *     """
942  *     cdef connection.PurpleConnection *gc = \
943  *             account.purple_account_get_connection(c_account)             # <<<<<<<<<<<<<<
944  * 
945  *     debug.purple_debug_info("account", "%s", "notify-added\n")
946  */
947   __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
948
949
950   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":63
951  *             account.purple_account_get_connection(c_account)
952  * 
953  *     debug.purple_debug_info("account", "%s", "notify-added\n")             # <<<<<<<<<<<<<<
954  * 
955  *     if alias:
956  */
957   purple_debug_info(__pyx_k_11, __pyx_k_12, __pyx_k_13);
958
959   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":65
960  *     debug.purple_debug_info("account", "%s", "notify-added\n")
961  * 
962  *     if alias:             # <<<<<<<<<<<<<<
963  *         remote_alias = <char *> alias
964  *     else:
965  */
966   __pyx_1 = (__pyx_v_alias != 0);
967   if (__pyx_1) {
968
969     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":66
970  * 
971  *     if alias:
972  *         remote_alias = <char *> alias             # <<<<<<<<<<<<<<
973  *     else:
974  *         remote_alias = None
975  */
976     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
977     Py_DECREF(__pyx_v_remote_alias);
978     __pyx_v_remote_alias = __pyx_2;
979     __pyx_2 = 0;
980     goto __pyx_L2;
981   }
982   /*else*/ {
983
984     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":68
985  *         remote_alias = <char *> alias
986  *     else:
987  *         remote_alias = None             # <<<<<<<<<<<<<<
988  * 
989  *     if id:
990  */
991     Py_INCREF(Py_None);
992     Py_DECREF(__pyx_v_remote_alias);
993     __pyx_v_remote_alias = Py_None;
994   }
995   __pyx_L2:;
996
997   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":70
998  *         remote_alias = None
999  * 
1000  *     if id:             # <<<<<<<<<<<<<<
1001  *         username = <char *> id
1002  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1003  */
1004   __pyx_1 = (__pyx_v_id != 0);
1005   if (__pyx_1) {
1006
1007     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":71
1008  * 
1009  *     if id:
1010  *         username = <char *> id             # <<<<<<<<<<<<<<
1011  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1012  *         username = connection.purple_connection_get_display_name(gc)
1013  */
1014     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
1015     Py_DECREF(__pyx_v_username);
1016     __pyx_v_username = __pyx_2;
1017     __pyx_2 = 0;
1018     goto __pyx_L3;
1019   }
1020
1021   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":72
1022  *     if id:
1023  *         username = <char *> id
1024  *     elif connection.purple_connection_get_display_name(gc) != NULL:             # <<<<<<<<<<<<<<
1025  *         username = connection.purple_connection_get_display_name(gc)
1026  *     else:
1027  */
1028   __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
1029   if (__pyx_1) {
1030
1031     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":73
1032  *         username = <char *> id
1033  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1034  *         username = connection.purple_connection_get_display_name(gc)             # <<<<<<<<<<<<<<
1035  *     else:
1036  *         username = account.purple_account_get_username(c_account)
1037  */
1038     __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
1039     Py_DECREF(__pyx_v_username);
1040     __pyx_v_username = __pyx_2;
1041     __pyx_2 = 0;
1042     goto __pyx_L3;
1043   }
1044   /*else*/ {
1045
1046     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":75
1047  *         username = connection.purple_connection_get_display_name(gc)
1048  *     else:
1049  *         username = account.purple_account_get_username(c_account)             # <<<<<<<<<<<<<<
1050  * 
1051  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1052  */
1053     __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1;}
1054     Py_DECREF(__pyx_v_username);
1055     __pyx_v_username = __pyx_2;
1056     __pyx_2 = 0;
1057   }
1058   __pyx_L3:;
1059
1060   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":77
1061  *         username = account.purple_account_get_username(c_account)
1062  * 
1063  *     protocol_id = account.purple_account_get_protocol_id(c_account)             # <<<<<<<<<<<<<<
1064  * 
1065  *     if c_message:
1066  */
1067   __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
1068   Py_DECREF(__pyx_v_protocol_id);
1069   __pyx_v_protocol_id = __pyx_2;
1070   __pyx_2 = 0;
1071
1072   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":79
1073  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1074  * 
1075  *     if c_message:             # <<<<<<<<<<<<<<
1076  *         message = <char *> c_message
1077  *     else:
1078  */
1079   __pyx_1 = (__pyx_v_c_message != 0);
1080   if (__pyx_1) {
1081
1082     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":80
1083  * 
1084  *     if c_message:
1085  *         message = <char *> c_message             # <<<<<<<<<<<<<<
1086  *     else:
1087  *         message = None
1088  */
1089     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1;}
1090     Py_DECREF(__pyx_v_message);
1091     __pyx_v_message = __pyx_2;
1092     __pyx_2 = 0;
1093     goto __pyx_L4;
1094   }
1095   /*else*/ {
1096
1097     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":82
1098  *         message = <char *> c_message
1099  *     else:
1100  *         message = None             # <<<<<<<<<<<<<<
1101  * 
1102  *     if account_cbs.has_key("notify-added"):
1103  */
1104     Py_INCREF(Py_None);
1105     Py_DECREF(__pyx_v_message);
1106     __pyx_v_message = Py_None;
1107   }
1108   __pyx_L4:;
1109
1110   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":84
1111  *         message = None
1112  * 
1113  *     if account_cbs.has_key("notify-added"):             # <<<<<<<<<<<<<<
1114  *         (<object> account_cbs["notify-added"])( \
1115  *                 (<char *> remote_user, remote_alias), \
1116  */
1117   __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1;}
1118   __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1;}
1119   Py_DECREF(__pyx_2); __pyx_2 = 0;
1120   __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1;}
1121   Py_INCREF(__pyx_kp_14);
1122   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_14);
1123   __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1;}
1124   Py_DECREF(__pyx_3); __pyx_3 = 0;
1125   Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
1126   __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1;}
1127   Py_DECREF(__pyx_4); __pyx_4 = 0;
1128   if (__pyx_1) {
1129
1130     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":85
1131  * 
1132  *     if account_cbs.has_key("notify-added"):
1133  *         (<object> account_cbs["notify-added"])( \             # <<<<<<<<<<<<<<
1134  *                 (<char *> remote_user, remote_alias), \
1135  *                 (username, protocol_id), message)
1136  */
1137     __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
1138     __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_15); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
1139     Py_DECREF(__pyx_3); __pyx_3 = 0;
1140
1141     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":86
1142  *     if account_cbs.has_key("notify-added"):
1143  *         (<object> account_cbs["notify-added"])( \
1144  *                 (<char *> remote_user, remote_alias), \             # <<<<<<<<<<<<<<
1145  *                 (username, protocol_id), message)
1146  * 
1147  */
1148     __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1;}
1149     __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1;}
1150     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
1151     Py_INCREF(__pyx_v_remote_alias);
1152     PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
1153     __pyx_4 = 0;
1154
1155     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":87
1156  *         (<object> account_cbs["notify-added"])( \
1157  *                 (<char *> remote_user, remote_alias), \
1158  *                 (username, protocol_id), message)             # <<<<<<<<<<<<<<
1159  * 
1160  * cdef void status_changed(account.PurpleAccount *c_account, \
1161  */
1162     __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1;}
1163     Py_INCREF(__pyx_v_username);
1164     PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
1165     Py_INCREF(__pyx_v_protocol_id);
1166     PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
1167     __pyx_5 = PyTuple_New(3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
1168     PyTuple_SET_ITEM(__pyx_5, 0, ((PyObject *)__pyx_3));
1169     PyTuple_SET_ITEM(__pyx_5, 1, ((PyObject *)__pyx_4));
1170     Py_INCREF(__pyx_v_message);
1171     PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_message);
1172     __pyx_3 = 0;
1173     __pyx_4 = 0;
1174     __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
1175     Py_DECREF(__pyx_2); __pyx_2 = 0;
1176     Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
1177     Py_DECREF(__pyx_3); __pyx_3 = 0;
1178     goto __pyx_L5;
1179   }
1180   __pyx_L5:;
1181
1182   goto __pyx_L0;
1183   __pyx_L1:;
1184   Py_XDECREF(__pyx_2);
1185   Py_XDECREF(__pyx_3);
1186   Py_XDECREF(__pyx_4);
1187   Py_XDECREF(__pyx_5);
1188   __Pyx_WriteUnraisable("purple.notify_added");
1189   __pyx_L0:;
1190   Py_DECREF(__pyx_v_remote_alias);
1191   Py_DECREF(__pyx_v_username);
1192   Py_DECREF(__pyx_v_protocol_id);
1193   Py_DECREF(__pyx_v_message);
1194 }
1195
1196 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":89
1197  *                 (username, protocol_id), message)
1198  * 
1199  * cdef void status_changed(account.PurpleAccount *c_account, \             # <<<<<<<<<<<<<<
1200  *         status.PurpleStatus *c_status):
1201  *     """
1202  */
1203
1204 static PyObject *__pyx_kp_19;
1205 static PyObject *__pyx_kp_20;
1206
1207 static char __pyx_k_16[] = "account";
1208 static char __pyx_k_17[] = "%s";
1209 static char __pyx_k_18[] = "status-changed\n";
1210 static char __pyx_k_19[] = "status-changed";
1211 static char __pyx_k_20[] = "status-changed";
1212
1213 static  void __pyx_f_6purple_status_changed(PurpleAccount *__pyx_v_c_account, PurpleStatus *__pyx_v_c_status) {
1214   PyObject *__pyx_v_username;
1215   PyObject *__pyx_v_protocol_id;
1216   PyObject *__pyx_v_status_id;
1217   PyObject *__pyx_v_status_name;
1218   PyObject *__pyx_1 = 0;
1219   PyObject *__pyx_2 = 0;
1220   PyObject *__pyx_3 = 0;
1221   int __pyx_4;
1222   __pyx_v_username = Py_None; Py_INCREF(Py_None);
1223   __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
1224   __pyx_v_status_id = Py_None; Py_INCREF(Py_None);
1225   __pyx_v_status_name = Py_None; Py_INCREF(Py_None);
1226
1227   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":94
1228  *     This account's status changed.
1229  *     """
1230  *     debug.purple_debug_info("account", "%s", "status-changed\n")             # <<<<<<<<<<<<<<
1231  * 
1232  *     username = account.purple_account_get_username(c_account)
1233  */
1234   purple_debug_info(__pyx_k_16, __pyx_k_17, __pyx_k_18);
1235
1236   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":96
1237  *     debug.purple_debug_info("account", "%s", "status-changed\n")
1238  * 
1239  *     username = account.purple_account_get_username(c_account)             # <<<<<<<<<<<<<<
1240  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1241  * 
1242  */
1243   __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
1244   Py_DECREF(__pyx_v_username);
1245   __pyx_v_username = __pyx_1;
1246   __pyx_1 = 0;
1247
1248   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":97
1249  * 
1250  *     username = account.purple_account_get_username(c_account)
1251  *     protocol_id = account.purple_account_get_protocol_id(c_account)             # <<<<<<<<<<<<<<
1252  * 
1253  *     status_id = status.purple_status_get_id(c_status)
1254  */
1255   __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1;}
1256   Py_DECREF(__pyx_v_protocol_id);
1257   __pyx_v_protocol_id = __pyx_1;
1258   __pyx_1 = 0;
1259
1260   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":99
1261  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1262  * 
1263  *     status_id = status.purple_status_get_id(c_status)             # <<<<<<<<<<<<<<
1264  *     status_name = status.purple_status_get_name(c_status)
1265  * 
1266  */
1267   __pyx_1 = __Pyx_PyBytes_FromString(purple_status_get_id(__pyx_v_c_status)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1;}
1268   Py_DECREF(__pyx_v_status_id);
1269   __pyx_v_status_id = __pyx_1;
1270   __pyx_1 = 0;
1271
1272   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":100
1273  * 
1274  *     status_id = status.purple_status_get_id(c_status)
1275  *     status_name = status.purple_status_get_name(c_status)             # <<<<<<<<<<<<<<
1276  * 
1277  *     if account_cbs.has_key("status-changed"):
1278  */
1279   __pyx_1 = __Pyx_PyBytes_FromString(purple_status_get_name(__pyx_v_c_status)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1;}
1280   Py_DECREF(__pyx_v_status_name);
1281   __pyx_v_status_name = __pyx_1;
1282   __pyx_1 = 0;
1283
1284   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":102
1285  *     status_name = status.purple_status_get_name(c_status)
1286  * 
1287  *     if account_cbs.has_key("status-changed"):             # <<<<<<<<<<<<<<
1288  *         (<object> account_cbs["status-changed"])( \
1289  *                 (username, protocol_id), status_id, status_name)
1290  */
1291   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
1292   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
1293   Py_DECREF(__pyx_1); __pyx_1 = 0;
1294   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
1295   Py_INCREF(__pyx_kp_19);
1296   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_19);
1297   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
1298   Py_DECREF(__pyx_2); __pyx_2 = 0;
1299   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
1300   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
1301   Py_DECREF(__pyx_3); __pyx_3 = 0;
1302   if (__pyx_4) {
1303
1304     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":103
1305  * 
1306  *     if account_cbs.has_key("status-changed"):
1307  *         (<object> account_cbs["status-changed"])( \             # <<<<<<<<<<<<<<
1308  *                 (username, protocol_id), status_id, status_name)
1309  * 
1310  */
1311     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
1312     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_20); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
1313     Py_DECREF(__pyx_2); __pyx_2 = 0;
1314
1315     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":104
1316  *     if account_cbs.has_key("status-changed"):
1317  *         (<object> account_cbs["status-changed"])( \
1318  *                 (username, protocol_id), status_id, status_name)             # <<<<<<<<<<<<<<
1319  * 
1320  * cdef void request_add(account.PurpleAccount *c_account, \
1321  */
1322     __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1;}
1323     Py_INCREF(__pyx_v_username);
1324     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_username);
1325     Py_INCREF(__pyx_v_protocol_id);
1326     PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_protocol_id);
1327     __pyx_2 = PyTuple_New(3); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
1328     PyTuple_SET_ITEM(__pyx_2, 0, ((PyObject *)__pyx_3));
1329     Py_INCREF(__pyx_v_status_id);
1330     PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_status_id);
1331     Py_INCREF(__pyx_v_status_name);
1332     PyTuple_SET_ITEM(__pyx_2, 2, __pyx_v_status_name);
1333     __pyx_3 = 0;
1334     __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
1335     Py_DECREF(__pyx_1); __pyx_1 = 0;
1336     Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
1337     Py_DECREF(__pyx_3); __pyx_3 = 0;
1338     goto __pyx_L2;
1339   }
1340   __pyx_L2:;
1341
1342   goto __pyx_L0;
1343   __pyx_L1:;
1344   Py_XDECREF(__pyx_1);
1345   Py_XDECREF(__pyx_2);
1346   Py_XDECREF(__pyx_3);
1347   __Pyx_WriteUnraisable("purple.status_changed");
1348   __pyx_L0:;
1349   Py_DECREF(__pyx_v_username);
1350   Py_DECREF(__pyx_v_protocol_id);
1351   Py_DECREF(__pyx_v_status_id);
1352   Py_DECREF(__pyx_v_status_name);
1353 }
1354
1355 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":106
1356  *                 (username, protocol_id), status_id, status_name)
1357  * 
1358  * cdef void request_add(account.PurpleAccount *c_account, \             # <<<<<<<<<<<<<<
1359  *         const_char *remote_user, const_char *id, const_char *alias, \
1360  *         const_char *c_message):
1361  */
1362
1363 static PyObject *__pyx_kp_24;
1364 static PyObject *__pyx_kp_25;
1365
1366 static char __pyx_k_21[] = "account";
1367 static char __pyx_k_22[] = "%s";
1368 static char __pyx_k_23[] = "request-add\n";
1369 static char __pyx_k_24[] = "request-add";
1370 static char __pyx_k_25[] = "request-add";
1371
1372 static  void __pyx_f_6purple_request_add(PurpleAccount *__pyx_v_c_account, const char *__pyx_v_remote_user, const char *__pyx_v_id, const char *__pyx_v_alias, const char *__pyx_v_c_message) {
1373   PurpleConnection *__pyx_v_gc;
1374   PyObject *__pyx_v_remote_alias;
1375   PyObject *__pyx_v_username;
1376   PyObject *__pyx_v_protocol_id;
1377   PyObject *__pyx_v_message;
1378   int __pyx_1;
1379   PyObject *__pyx_2 = 0;
1380   PyObject *__pyx_3 = 0;
1381   PyObject *__pyx_4 = 0;
1382   PyObject *__pyx_5 = 0;
1383   __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
1384   __pyx_v_username = Py_None; Py_INCREF(Py_None);
1385   __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
1386   __pyx_v_message = Py_None; Py_INCREF(Py_None);
1387
1388   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":113
1389  *     """
1390  *     cdef connection.PurpleConnection *gc = \
1391  *             account.purple_account_get_connection(c_account)             # <<<<<<<<<<<<<<
1392  * 
1393  *     debug.purple_debug_info("account", "%s", "request-add\n")
1394  */
1395   __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
1396
1397
1398   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":115
1399  *             account.purple_account_get_connection(c_account)
1400  * 
1401  *     debug.purple_debug_info("account", "%s", "request-add\n")             # <<<<<<<<<<<<<<
1402  * 
1403  *     if alias:
1404  */
1405   purple_debug_info(__pyx_k_21, __pyx_k_22, __pyx_k_23);
1406
1407   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":117
1408  *     debug.purple_debug_info("account", "%s", "request-add\n")
1409  * 
1410  *     if alias:             # <<<<<<<<<<<<<<
1411  *         remote_alias = <char *> alias
1412  *     else:
1413  */
1414   __pyx_1 = (__pyx_v_alias != 0);
1415   if (__pyx_1) {
1416
1417     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":118
1418  * 
1419  *     if alias:
1420  *         remote_alias = <char *> alias             # <<<<<<<<<<<<<<
1421  *     else:
1422  *         remote_alias = None
1423  */
1424     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
1425     Py_DECREF(__pyx_v_remote_alias);
1426     __pyx_v_remote_alias = __pyx_2;
1427     __pyx_2 = 0;
1428     goto __pyx_L2;
1429   }
1430   /*else*/ {
1431
1432     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":120
1433  *         remote_alias = <char *> alias
1434  *     else:
1435  *         remote_alias = None             # <<<<<<<<<<<<<<
1436  * 
1437  *     if id:
1438  */
1439     Py_INCREF(Py_None);
1440     Py_DECREF(__pyx_v_remote_alias);
1441     __pyx_v_remote_alias = Py_None;
1442   }
1443   __pyx_L2:;
1444
1445   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":122
1446  *         remote_alias = None
1447  * 
1448  *     if id:             # <<<<<<<<<<<<<<
1449  *         username = <char *> id
1450  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1451  */
1452   __pyx_1 = (__pyx_v_id != 0);
1453   if (__pyx_1) {
1454
1455     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":123
1456  * 
1457  *     if id:
1458  *         username = <char *> id             # <<<<<<<<<<<<<<
1459  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1460  *         username = connection.purple_connection_get_display_name(gc)
1461  */
1462     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1;}
1463     Py_DECREF(__pyx_v_username);
1464     __pyx_v_username = __pyx_2;
1465     __pyx_2 = 0;
1466     goto __pyx_L3;
1467   }
1468
1469   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":124
1470  *     if id:
1471  *         username = <char *> id
1472  *     elif connection.purple_connection_get_display_name(gc) != NULL:             # <<<<<<<<<<<<<<
1473  *         username = connection.purple_connection_get_display_name(gc)
1474  *     else:
1475  */
1476   __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
1477   if (__pyx_1) {
1478
1479     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":125
1480  *         username = <char *> id
1481  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1482  *         username = connection.purple_connection_get_display_name(gc)             # <<<<<<<<<<<<<<
1483  *     else:
1484  *         username = account.purple_account_get_username(c_account)
1485  */
1486     __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1;}
1487     Py_DECREF(__pyx_v_username);
1488     __pyx_v_username = __pyx_2;
1489     __pyx_2 = 0;
1490     goto __pyx_L3;
1491   }
1492   /*else*/ {
1493
1494     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":127
1495  *         username = connection.purple_connection_get_display_name(gc)
1496  *     else:
1497  *         username = account.purple_account_get_username(c_account)             # <<<<<<<<<<<<<<
1498  * 
1499  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1500  */
1501     __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1;}
1502     Py_DECREF(__pyx_v_username);
1503     __pyx_v_username = __pyx_2;
1504     __pyx_2 = 0;
1505   }
1506   __pyx_L3:;
1507
1508   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":129
1509  *         username = account.purple_account_get_username(c_account)
1510  * 
1511  *     protocol_id = account.purple_account_get_protocol_id(c_account)             # <<<<<<<<<<<<<<
1512  * 
1513  *     if c_message:
1514  */
1515   __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1;}
1516   Py_DECREF(__pyx_v_protocol_id);
1517   __pyx_v_protocol_id = __pyx_2;
1518   __pyx_2 = 0;
1519
1520   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":131
1521  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1522  * 
1523  *     if c_message:             # <<<<<<<<<<<<<<
1524  *         message = <char *> c_message
1525  *     else:
1526  */
1527   __pyx_1 = (__pyx_v_c_message != 0);
1528   if (__pyx_1) {
1529
1530     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":132
1531  * 
1532  *     if c_message:
1533  *         message = <char *> c_message             # <<<<<<<<<<<<<<
1534  *     else:
1535  *         message = None
1536  */
1537     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1;}
1538     Py_DECREF(__pyx_v_message);
1539     __pyx_v_message = __pyx_2;
1540     __pyx_2 = 0;
1541     goto __pyx_L4;
1542   }
1543   /*else*/ {
1544
1545     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":134
1546  *         message = <char *> c_message
1547  *     else:
1548  *         message = None             # <<<<<<<<<<<<<<
1549  * 
1550  *     if account_cbs.has_key("request-add"):
1551  */
1552     Py_INCREF(Py_None);
1553     Py_DECREF(__pyx_v_message);
1554     __pyx_v_message = Py_None;
1555   }
1556   __pyx_L4:;
1557
1558   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":136
1559  *         message = None
1560  * 
1561  *     if account_cbs.has_key("request-add"):             # <<<<<<<<<<<<<<
1562  *         (<object> account_cbs["request-add"])( \
1563  *                 (<char *> remote_user, remote_alias), \
1564  */
1565   __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
1566   __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
1567   Py_DECREF(__pyx_2); __pyx_2 = 0;
1568   __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
1569   Py_INCREF(__pyx_kp_24);
1570   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_24);
1571   __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
1572   Py_DECREF(__pyx_3); __pyx_3 = 0;
1573   Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
1574   __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
1575   Py_DECREF(__pyx_4); __pyx_4 = 0;
1576   if (__pyx_1) {
1577
1578     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":137
1579  * 
1580  *     if account_cbs.has_key("request-add"):
1581  *         (<object> account_cbs["request-add"])( \             # <<<<<<<<<<<<<<
1582  *                 (<char *> remote_user, remote_alias), \
1583  *                 (username, protocol_id), message)
1584  */
1585     __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1;}
1586     __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_25); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1;}
1587     Py_DECREF(__pyx_3); __pyx_3 = 0;
1588
1589     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":138
1590  *     if account_cbs.has_key("request-add"):
1591  *         (<object> account_cbs["request-add"])( \
1592  *                 (<char *> remote_user, remote_alias), \             # <<<<<<<<<<<<<<
1593  *                 (username, protocol_id), message)
1594  * 
1595  */
1596     __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1;}
1597     __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1;}
1598     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
1599     Py_INCREF(__pyx_v_remote_alias);
1600     PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
1601     __pyx_4 = 0;
1602
1603     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":139
1604  *         (<object> account_cbs["request-add"])( \
1605  *                 (<char *> remote_user, remote_alias), \
1606  *                 (username, protocol_id), message)             # <<<<<<<<<<<<<<
1607  * 
1608  * cdef void *request_authorize(account.PurpleAccount *c_account, \
1609  */
1610     __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1;}
1611     Py_INCREF(__pyx_v_username);
1612     PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
1613     Py_INCREF(__pyx_v_protocol_id);
1614     PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
1615     __pyx_5 = PyTuple_New(3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1;}
1616     PyTuple_SET_ITEM(__pyx_5, 0, ((PyObject *)__pyx_3));
1617     PyTuple_SET_ITEM(__pyx_5, 1, ((PyObject *)__pyx_4));
1618     Py_INCREF(__pyx_v_message);
1619     PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_message);
1620     __pyx_3 = 0;
1621     __pyx_4 = 0;
1622     __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1;}
1623     Py_DECREF(__pyx_2); __pyx_2 = 0;
1624     Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
1625     Py_DECREF(__pyx_3); __pyx_3 = 0;
1626     goto __pyx_L5;
1627   }
1628   __pyx_L5:;
1629
1630   goto __pyx_L0;
1631   __pyx_L1:;
1632   Py_XDECREF(__pyx_2);
1633   Py_XDECREF(__pyx_3);
1634   Py_XDECREF(__pyx_4);
1635   Py_XDECREF(__pyx_5);
1636   __Pyx_WriteUnraisable("purple.request_add");
1637   __pyx_L0:;
1638   Py_DECREF(__pyx_v_remote_alias);
1639   Py_DECREF(__pyx_v_username);
1640   Py_DECREF(__pyx_v_protocol_id);
1641   Py_DECREF(__pyx_v_message);
1642 }
1643
1644 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":141
1645  *                 (username, protocol_id), message)
1646  * 
1647  * cdef void *request_authorize(account.PurpleAccount *c_account, \             # <<<<<<<<<<<<<<
1648  *         const_char *remote_user, const_char *id, const_char *alias, \
1649  *         const_char *c_message, glib.gboolean on_list, \
1650  */
1651
1652 static char __pyx_k_call_authorize_cb[] = "call_authorize_cb";
1653 static char __pyx_k_call_deny_cb[] = "call_deny_cb";
1654
1655 static PyObject *__pyx_kp_call_authorize_cb;
1656 static PyObject *__pyx_kp_call_deny_cb;
1657
1658 static PyObject *__pyx_kp_29;
1659 static PyObject *__pyx_kp_30;
1660
1661 static char __pyx_k_26[] = "account";
1662 static char __pyx_k_27[] = "%s";
1663 static char __pyx_k_28[] = "request-authorize\n";
1664 static char __pyx_k_29[] = "request-authorize";
1665 static char __pyx_k_30[] = "request-authorize";
1666
1667 static  void *__pyx_f_6purple_request_authorize(PurpleAccount *__pyx_v_c_account, const char *__pyx_v_remote_user, const char *__pyx_v_id, const char *__pyx_v_alias, const char *__pyx_v_c_message, gboolean __pyx_v_on_list, PurpleAccountRequestAuthorizationCb __pyx_v_authorize_cb, PurpleAccountRequestAuthorizationCb __pyx_v_deny_cb, void *__pyx_v_user_data) {
1668   PurpleConnection *__pyx_v_gc;
1669   PyObject *__pyx_v_remote_alias;
1670   PyObject *__pyx_v_username;
1671   PyObject *__pyx_v_protocol_id;
1672   PyObject *__pyx_v_message;
1673   void *__pyx_r;
1674   int __pyx_1;
1675   PyObject *__pyx_2 = 0;
1676   PyObject *__pyx_3 = 0;
1677   PyObject *__pyx_4 = 0;
1678   PyObject *__pyx_5 = 0;
1679   PyObject *__pyx_6 = 0;
1680   PyObject *__pyx_7 = 0;
1681   PyObject *__pyx_8 = 0;
1682   __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
1683   __pyx_v_username = Py_None; Py_INCREF(Py_None);
1684   __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
1685   __pyx_v_message = Py_None; Py_INCREF(Py_None);
1686
1687   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":154
1688  *     """
1689  *     cdef connection.PurpleConnection *gc = \
1690  *             account.purple_account_get_connection(c_account)             # <<<<<<<<<<<<<<
1691  * 
1692  *     debug.purple_debug_info("account", "%s", "request-authorize\n")
1693  */
1694   __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
1695
1696
1697   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":156
1698  *             account.purple_account_get_connection(c_account)
1699  * 
1700  *     debug.purple_debug_info("account", "%s", "request-authorize\n")             # <<<<<<<<<<<<<<
1701  * 
1702  *     global c_request_authorize_authorize_cb
1703  */
1704   purple_debug_info(__pyx_k_26, __pyx_k_27, __pyx_k_28);
1705
1706   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":162
1707  *     global c_request_authorize_user_data
1708  * 
1709  *     c_request_authorize_authorize_cb = authorize_cb             # <<<<<<<<<<<<<<
1710  *     c_request_authorize_deny_cb = deny_cb
1711  *     c_request_authorize_user_data = user_data
1712  */
1713   __pyx_v_6purple_c_request_authorize_authorize_cb = __pyx_v_authorize_cb;
1714
1715   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":163
1716  * 
1717  *     c_request_authorize_authorize_cb = authorize_cb
1718  *     c_request_authorize_deny_cb = deny_cb             # <<<<<<<<<<<<<<
1719  *     c_request_authorize_user_data = user_data
1720  * 
1721  */
1722   __pyx_v_6purple_c_request_authorize_deny_cb = __pyx_v_deny_cb;
1723
1724   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":164
1725  *     c_request_authorize_authorize_cb = authorize_cb
1726  *     c_request_authorize_deny_cb = deny_cb
1727  *     c_request_authorize_user_data = user_data             # <<<<<<<<<<<<<<
1728  * 
1729  *     if alias:
1730  */
1731   __pyx_v_6purple_c_request_authorize_user_data = __pyx_v_user_data;
1732
1733   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":166
1734  *     c_request_authorize_user_data = user_data
1735  * 
1736  *     if alias:             # <<<<<<<<<<<<<<
1737  *         remote_alias = <char *> alias
1738  *     else:
1739  */
1740   __pyx_1 = (__pyx_v_alias != 0);
1741   if (__pyx_1) {
1742
1743     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":167
1744  * 
1745  *     if alias:
1746  *         remote_alias = <char *> alias             # <<<<<<<<<<<<<<
1747  *     else:
1748  *         remote_alias = None
1749  */
1750     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1;}
1751     Py_DECREF(__pyx_v_remote_alias);
1752     __pyx_v_remote_alias = __pyx_2;
1753     __pyx_2 = 0;
1754     goto __pyx_L2;
1755   }
1756   /*else*/ {
1757
1758     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":169
1759  *         remote_alias = <char *> alias
1760  *     else:
1761  *         remote_alias = None             # <<<<<<<<<<<<<<
1762  * 
1763  *     if id:
1764  */
1765     Py_INCREF(Py_None);
1766     Py_DECREF(__pyx_v_remote_alias);
1767     __pyx_v_remote_alias = Py_None;
1768   }
1769   __pyx_L2:;
1770
1771   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":171
1772  *         remote_alias = None
1773  * 
1774  *     if id:             # <<<<<<<<<<<<<<
1775  *         username = <char *> id
1776  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1777  */
1778   __pyx_1 = (__pyx_v_id != 0);
1779   if (__pyx_1) {
1780
1781     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":172
1782  * 
1783  *     if id:
1784  *         username = <char *> id             # <<<<<<<<<<<<<<
1785  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1786  *         username = connection.purple_connection_get_display_name(gc)
1787  */
1788     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1;}
1789     Py_DECREF(__pyx_v_username);
1790     __pyx_v_username = __pyx_2;
1791     __pyx_2 = 0;
1792     goto __pyx_L3;
1793   }
1794
1795   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":173
1796  *     if id:
1797  *         username = <char *> id
1798  *     elif connection.purple_connection_get_display_name(gc) != NULL:             # <<<<<<<<<<<<<<
1799  *         username = connection.purple_connection_get_display_name(gc)
1800  *     else:
1801  */
1802   __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
1803   if (__pyx_1) {
1804
1805     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":174
1806  *         username = <char *> id
1807  *     elif connection.purple_connection_get_display_name(gc) != NULL:
1808  *         username = connection.purple_connection_get_display_name(gc)             # <<<<<<<<<<<<<<
1809  *     else:
1810  *         username = account.purple_account_get_username(c_account)
1811  */
1812     __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1;}
1813     Py_DECREF(__pyx_v_username);
1814     __pyx_v_username = __pyx_2;
1815     __pyx_2 = 0;
1816     goto __pyx_L3;
1817   }
1818   /*else*/ {
1819
1820     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":176
1821  *         username = connection.purple_connection_get_display_name(gc)
1822  *     else:
1823  *         username = account.purple_account_get_username(c_account)             # <<<<<<<<<<<<<<
1824  * 
1825  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1826  */
1827     __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1;}
1828     Py_DECREF(__pyx_v_username);
1829     __pyx_v_username = __pyx_2;
1830     __pyx_2 = 0;
1831   }
1832   __pyx_L3:;
1833
1834   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":178
1835  *         username = account.purple_account_get_username(c_account)
1836  * 
1837  *     protocol_id = account.purple_account_get_protocol_id(c_account)             # <<<<<<<<<<<<<<
1838  * 
1839  *     if c_message:
1840  */
1841   __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
1842   Py_DECREF(__pyx_v_protocol_id);
1843   __pyx_v_protocol_id = __pyx_2;
1844   __pyx_2 = 0;
1845
1846   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":180
1847  *     protocol_id = account.purple_account_get_protocol_id(c_account)
1848  * 
1849  *     if c_message:             # <<<<<<<<<<<<<<
1850  *         message = <char *> c_message
1851  *     else:
1852  */
1853   __pyx_1 = (__pyx_v_c_message != 0);
1854   if (__pyx_1) {
1855
1856     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":181
1857  * 
1858  *     if c_message:
1859  *         message = <char *> c_message             # <<<<<<<<<<<<<<
1860  *     else:
1861  *         message = None
1862  */
1863     __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1;}
1864     Py_DECREF(__pyx_v_message);
1865     __pyx_v_message = __pyx_2;
1866     __pyx_2 = 0;
1867     goto __pyx_L4;
1868   }
1869   /*else*/ {
1870
1871     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":183
1872  *         message = <char *> c_message
1873  *     else:
1874  *         message = None             # <<<<<<<<<<<<<<
1875  * 
1876  *     if account_cbs.has_key("request-authorize"):
1877  */
1878     Py_INCREF(Py_None);
1879     Py_DECREF(__pyx_v_message);
1880     __pyx_v_message = Py_None;
1881   }
1882   __pyx_L4:;
1883
1884   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":185
1885  *         message = None
1886  * 
1887  *     if account_cbs.has_key("request-authorize"):             # <<<<<<<<<<<<<<
1888  *         (<object> account_cbs["request-authorize"])( \
1889  *                 (<char *> remote_user, remote_alias), \
1890  */
1891   __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
1892   __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
1893   Py_DECREF(__pyx_2); __pyx_2 = 0;
1894   __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
1895   Py_INCREF(__pyx_kp_29);
1896   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_29);
1897   __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
1898   Py_DECREF(__pyx_3); __pyx_3 = 0;
1899   Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
1900   __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
1901   Py_DECREF(__pyx_4); __pyx_4 = 0;
1902   if (__pyx_1) {
1903
1904     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":186
1905  * 
1906  *     if account_cbs.has_key("request-authorize"):
1907  *         (<object> account_cbs["request-authorize"])( \             # <<<<<<<<<<<<<<
1908  *                 (<char *> remote_user, remote_alias), \
1909  *                 (username, protocol_id), \
1910  */
1911     __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
1912     __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_30); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
1913     Py_DECREF(__pyx_3); __pyx_3 = 0;
1914
1915     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":187
1916  *     if account_cbs.has_key("request-authorize"):
1917  *         (<object> account_cbs["request-authorize"])( \
1918  *                 (<char *> remote_user, remote_alias), \             # <<<<<<<<<<<<<<
1919  *                 (username, protocol_id), \
1920  *                 message, on_list, \
1921  */
1922     __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1;}
1923     __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1;}
1924     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
1925     Py_INCREF(__pyx_v_remote_alias);
1926     PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
1927     __pyx_4 = 0;
1928
1929     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":188
1930  *         (<object> account_cbs["request-authorize"])( \
1931  *                 (<char *> remote_user, remote_alias), \
1932  *                 (username, protocol_id), \             # <<<<<<<<<<<<<<
1933  *                 message, on_list, \
1934  *                 call_authorize_cb, call_deny_cb)
1935  */
1936     __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1;}
1937     Py_INCREF(__pyx_v_username);
1938     PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
1939     Py_INCREF(__pyx_v_protocol_id);
1940     PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
1941
1942     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":189
1943  *                 (<char *> remote_user, remote_alias), \
1944  *                 (username, protocol_id), \
1945  *                 message, on_list, \             # <<<<<<<<<<<<<<
1946  *                 call_authorize_cb, call_deny_cb)
1947  * 
1948  */
1949     __pyx_5 = PyInt_FromLong(__pyx_v_on_list); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1;}
1950
1951     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":190
1952  *                 (username, protocol_id), \
1953  *                 message, on_list, \
1954  *                 call_authorize_cb, call_deny_cb)             # <<<<<<<<<<<<<<
1955  * 
1956  * cdef void close_account_request (void *ui_handle):
1957  */
1958     __pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_call_authorize_cb); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1;}
1959     __pyx_7 = __Pyx_GetName(__pyx_m, __pyx_kp_call_deny_cb); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1;}
1960     __pyx_8 = PyTuple_New(6); if (unlikely(!__pyx_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
1961     PyTuple_SET_ITEM(__pyx_8, 0, ((PyObject *)__pyx_3));
1962     PyTuple_SET_ITEM(__pyx_8, 1, ((PyObject *)__pyx_4));
1963     Py_INCREF(__pyx_v_message);
1964     PyTuple_SET_ITEM(__pyx_8, 2, __pyx_v_message);
1965     PyTuple_SET_ITEM(__pyx_8, 3, __pyx_5);
1966     PyTuple_SET_ITEM(__pyx_8, 4, __pyx_6);
1967     PyTuple_SET_ITEM(__pyx_8, 5, __pyx_7);
1968     __pyx_3 = 0;
1969     __pyx_4 = 0;
1970     __pyx_5 = 0;
1971     __pyx_6 = 0;
1972     __pyx_7 = 0;
1973     __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_8), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
1974     Py_DECREF(__pyx_2); __pyx_2 = 0;
1975     Py_DECREF(((PyObject *)__pyx_8)); __pyx_8 = 0;
1976     Py_DECREF(__pyx_3); __pyx_3 = 0;
1977     goto __pyx_L5;
1978   }
1979   __pyx_L5:;
1980
1981   __pyx_r = 0;
1982   goto __pyx_L0;
1983   __pyx_L1:;
1984   Py_XDECREF(__pyx_2);
1985   Py_XDECREF(__pyx_3);
1986   Py_XDECREF(__pyx_4);
1987   Py_XDECREF(__pyx_5);
1988   Py_XDECREF(__pyx_6);
1989   Py_XDECREF(__pyx_7);
1990   Py_XDECREF(__pyx_8);
1991   __Pyx_WriteUnraisable("purple.request_authorize");
1992   __pyx_r = 0;
1993   __pyx_L0:;
1994   Py_DECREF(__pyx_v_remote_alias);
1995   Py_DECREF(__pyx_v_username);
1996   Py_DECREF(__pyx_v_protocol_id);
1997   Py_DECREF(__pyx_v_message);
1998   return __pyx_r;
1999 }
2000
2001 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":192
2002  *                 call_authorize_cb, call_deny_cb)
2003  * 
2004  * cdef void close_account_request (void *ui_handle):             # <<<<<<<<<<<<<<
2005  *     """
2006  *     Close a pending request for authorization. ui_handle is a handle as
2007  */
2008
2009 static PyObject *__pyx_kp_34;
2010 static PyObject *__pyx_kp_35;
2011
2012 static char __pyx_k_31[] = "account";
2013 static char __pyx_k_32[] = "%s";
2014 static char __pyx_k_33[] = "close-account-request\n";
2015 static char __pyx_k_34[] = "close-account-request";
2016 static char __pyx_k_35[] = "close-account-request";
2017
2018 static  void __pyx_f_6purple_close_account_request(void *__pyx_v_ui_handle) {
2019   PyObject *__pyx_1 = 0;
2020   PyObject *__pyx_2 = 0;
2021   PyObject *__pyx_3 = 0;
2022   int __pyx_4;
2023
2024   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":197
2025  *     returned by request_authorize.
2026  *     """
2027  *     debug.purple_debug_info("account", "%s", "close-account-request\n")             # <<<<<<<<<<<<<<
2028  * 
2029  *     request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle)
2030  */
2031   purple_debug_info(__pyx_k_31, __pyx_k_32, __pyx_k_33);
2032
2033   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":199
2034  *     debug.purple_debug_info("account", "%s", "close-account-request\n")
2035  * 
2036  *     request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle)             # <<<<<<<<<<<<<<
2037  * 
2038  *     if account_cbs.has_key("close-account-request"):
2039  */
2040   purple_request_close(PURPLE_REQUEST_ACTION, __pyx_v_ui_handle);
2041
2042   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":201
2043  *     request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle)
2044  * 
2045  *     if account_cbs.has_key("close-account-request"):             # <<<<<<<<<<<<<<
2046  *         (<object> account_cbs["close-account-request"])()
2047  */
2048   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
2049   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
2050   Py_DECREF(__pyx_1); __pyx_1 = 0;
2051   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
2052   Py_INCREF(__pyx_kp_34);
2053   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_34);
2054   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
2055   Py_DECREF(__pyx_2); __pyx_2 = 0;
2056   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
2057   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
2058   Py_DECREF(__pyx_3); __pyx_3 = 0;
2059   if (__pyx_4) {
2060
2061     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/account_cbs.pxd":202
2062  * 
2063  *     if account_cbs.has_key("close-account-request"):
2064  *         (<object> account_cbs["close-account-request"])()             # <<<<<<<<<<<<<<
2065  */
2066     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1;}
2067     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_35); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1;}
2068     Py_DECREF(__pyx_2); __pyx_2 = 0;
2069     __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1;}
2070     Py_DECREF(__pyx_1); __pyx_1 = 0;
2071     Py_DECREF(__pyx_3); __pyx_3 = 0;
2072     goto __pyx_L2;
2073   }
2074   __pyx_L2:;
2075
2076   goto __pyx_L0;
2077   __pyx_L1:;
2078   Py_XDECREF(__pyx_1);
2079   Py_XDECREF(__pyx_2);
2080   Py_XDECREF(__pyx_3);
2081   __Pyx_WriteUnraisable("purple.close_account_request");
2082   __pyx_L0:;
2083 }
2084
2085 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":27
2086  * blist_cbs = {}
2087  * 
2088  * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):             # <<<<<<<<<<<<<<
2089  *     cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node
2090  *     cdef char *c_name = NULL
2091  */
2092
2093 static  void __pyx_f_6purple___group_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
2094   PurpleGroup *__pyx_v_group;
2095   char *__pyx_v_c_name;
2096   PyObject *__pyx_v_name;
2097   PyObject *__pyx_v_currentsize;
2098   PyObject *__pyx_v_totalsize;
2099   PyObject *__pyx_v_online;
2100   int __pyx_1;
2101   PyObject *__pyx_2 = 0;
2102   PyObject *__pyx_3 = 0;
2103   __pyx_v_name = Py_None; Py_INCREF(Py_None);
2104   __pyx_v_currentsize = Py_None; Py_INCREF(Py_None);
2105   __pyx_v_totalsize = Py_None; Py_INCREF(Py_None);
2106   __pyx_v_online = Py_None; Py_INCREF(Py_None);
2107
2108   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":28
2109  * 
2110  * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
2111  *     cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node             # <<<<<<<<<<<<<<
2112  *     cdef char *c_name = NULL
2113  * 
2114  */
2115   __pyx_v_group = ((PurpleGroup *)__pyx_v_node);
2116
2117
2118   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":29
2119  * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
2120  *     cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node
2121  *     cdef char *c_name = NULL             # <<<<<<<<<<<<<<
2122  * 
2123  *     c_name = <char *> blist.purple_group_get_name(group)
2124  */
2125   __pyx_v_c_name = NULL;
2126
2127
2128   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":31
2129  *     cdef char *c_name = NULL
2130  * 
2131  *     c_name = <char *> blist.purple_group_get_name(group)             # <<<<<<<<<<<<<<
2132  *     if c_name == NULL:
2133  *         name = None
2134  */
2135   __pyx_v_c_name = ((char *)purple_group_get_name(__pyx_v_group));
2136
2137   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":32
2138  * 
2139  *     c_name = <char *> blist.purple_group_get_name(group)
2140  *     if c_name == NULL:             # <<<<<<<<<<<<<<
2141  *         name = None
2142  *     else:
2143  */
2144   __pyx_1 = (__pyx_v_c_name == NULL);
2145   if (__pyx_1) {
2146
2147     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":33
2148  *     c_name = <char *> blist.purple_group_get_name(group)
2149  *     if c_name == NULL:
2150  *         name = None             # <<<<<<<<<<<<<<
2151  *     else:
2152  *         name = c_name
2153  */
2154     Py_INCREF(Py_None);
2155     Py_DECREF(__pyx_v_name);
2156     __pyx_v_name = Py_None;
2157     goto __pyx_L2;
2158   }
2159   /*else*/ {
2160
2161     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":35
2162  *         name = None
2163  *     else:
2164  *         name = c_name             # <<<<<<<<<<<<<<
2165  * 
2166  *     currentsize = blist.purple_blist_get_group_size(group, False)
2167  */
2168     __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
2169     Py_DECREF(__pyx_v_name);
2170     __pyx_v_name = __pyx_2;
2171     __pyx_2 = 0;
2172   }
2173   __pyx_L2:;
2174
2175   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":37
2176  *         name = c_name
2177  * 
2178  *     currentsize = blist.purple_blist_get_group_size(group, False)             # <<<<<<<<<<<<<<
2179  *     totalsize = blist.purple_blist_get_group_size(group, True)
2180  *     online = blist.purple_blist_get_group_online_count(group)
2181  */
2182   __pyx_2 = PyInt_FromLong(purple_blist_get_group_size(__pyx_v_group, 0)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1;}
2183   Py_DECREF(__pyx_v_currentsize);
2184   __pyx_v_currentsize = __pyx_2;
2185   __pyx_2 = 0;
2186
2187   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":38
2188  * 
2189  *     currentsize = blist.purple_blist_get_group_size(group, False)
2190  *     totalsize = blist.purple_blist_get_group_size(group, True)             # <<<<<<<<<<<<<<
2191  *     online = blist.purple_blist_get_group_online_count(group)
2192  * 
2193  */
2194   __pyx_2 = PyInt_FromLong(purple_blist_get_group_size(__pyx_v_group, 1)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1;}
2195   Py_DECREF(__pyx_v_totalsize);
2196   __pyx_v_totalsize = __pyx_2;
2197   __pyx_2 = 0;
2198
2199   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":39
2200  *     currentsize = blist.purple_blist_get_group_size(group, False)
2201  *     totalsize = blist.purple_blist_get_group_size(group, True)
2202  *     online = blist.purple_blist_get_group_online_count(group)             # <<<<<<<<<<<<<<
2203  * 
2204  *     callback(node.type, name, totalsize, currentsize, online)
2205  */
2206   __pyx_2 = PyInt_FromLong(purple_blist_get_group_online_count(__pyx_v_group)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1;}
2207   Py_DECREF(__pyx_v_online);
2208   __pyx_v_online = __pyx_2;
2209   __pyx_2 = 0;
2210
2211   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":41
2212  *     online = blist.purple_blist_get_group_online_count(group)
2213  * 
2214  *     callback(node.type, name, totalsize, currentsize, online)             # <<<<<<<<<<<<<<
2215  * 
2216  * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
2217  */
2218   __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
2219   __pyx_3 = PyTuple_New(5); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
2220   PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
2221   Py_INCREF(__pyx_v_name);
2222   PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
2223   Py_INCREF(__pyx_v_totalsize);
2224   PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_totalsize);
2225   Py_INCREF(__pyx_v_currentsize);
2226   PyTuple_SET_ITEM(__pyx_3, 3, __pyx_v_currentsize);
2227   Py_INCREF(__pyx_v_online);
2228   PyTuple_SET_ITEM(__pyx_3, 4, __pyx_v_online);
2229   __pyx_2 = 0;
2230   __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
2231   Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
2232   Py_DECREF(__pyx_2); __pyx_2 = 0;
2233
2234   goto __pyx_L0;
2235   __pyx_L1:;
2236   Py_XDECREF(__pyx_2);
2237   Py_XDECREF(__pyx_3);
2238   __Pyx_WriteUnraisable("purple.__group_node_cb");
2239   __pyx_L0:;
2240   Py_DECREF(__pyx_v_name);
2241   Py_DECREF(__pyx_v_currentsize);
2242   Py_DECREF(__pyx_v_totalsize);
2243   Py_DECREF(__pyx_v_online);
2244 }
2245
2246 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":43
2247  *     callback(node.type, name, totalsize, currentsize, online)
2248  * 
2249  * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):             # <<<<<<<<<<<<<<
2250  *     cdef blist.PurpleContact *contact = <blist.PurpleContact *>node
2251  *     cdef char *c_alias = NULL
2252  */
2253
2254 static  void __pyx_f_6purple___contact_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
2255   PurpleContact *__pyx_v_contact;
2256   char *__pyx_v_c_alias;
2257   PyObject *__pyx_v_alias;
2258   int __pyx_1;
2259   PyObject *__pyx_2 = 0;
2260   PyObject *__pyx_3 = 0;
2261   PyObject *__pyx_4 = 0;
2262   PyObject *__pyx_5 = 0;
2263   PyObject *__pyx_6 = 0;
2264   __pyx_v_alias = Py_None; Py_INCREF(Py_None);
2265
2266   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":44
2267  * 
2268  * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
2269  *     cdef blist.PurpleContact *contact = <blist.PurpleContact *>node             # <<<<<<<<<<<<<<
2270  *     cdef char *c_alias = NULL
2271  * 
2272  */
2273   __pyx_v_contact = ((PurpleContact *)__pyx_v_node);
2274
2275
2276   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":45
2277  * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
2278  *     cdef blist.PurpleContact *contact = <blist.PurpleContact *>node
2279  *     cdef char *c_alias = NULL             # <<<<<<<<<<<<<<
2280  * 
2281  *     c_alias = <char *> blist.purple_contact_get_alias(contact)
2282  */
2283   __pyx_v_c_alias = NULL;
2284
2285
2286   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":47
2287  *     cdef char *c_alias = NULL
2288  * 
2289  *     c_alias = <char *> blist.purple_contact_get_alias(contact)             # <<<<<<<<<<<<<<
2290  *     if c_alias == NULL:
2291  *         alias = None
2292  */
2293   __pyx_v_c_alias = ((char *)purple_contact_get_alias(__pyx_v_contact));
2294
2295   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":48
2296  * 
2297  *     c_alias = <char *> blist.purple_contact_get_alias(contact)
2298  *     if c_alias == NULL:             # <<<<<<<<<<<<<<
2299  *         alias = None
2300  *     else:
2301  */
2302   __pyx_1 = (__pyx_v_c_alias == NULL);
2303   if (__pyx_1) {
2304
2305     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":49
2306  *     c_alias = <char *> blist.purple_contact_get_alias(contact)
2307  *     if c_alias == NULL:
2308  *         alias = None             # <<<<<<<<<<<<<<
2309  *     else:
2310  *         alias = c_alias
2311  */
2312     Py_INCREF(Py_None);
2313     Py_DECREF(__pyx_v_alias);
2314     __pyx_v_alias = Py_None;
2315     goto __pyx_L2;
2316   }
2317   /*else*/ {
2318
2319     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":51
2320  *         alias = None
2321  *     else:
2322  *         alias = c_alias             # <<<<<<<<<<<<<<
2323  * 
2324  *     callback(node.type, alias, contact.totalsize, contact.currentsize, \
2325  */
2326     __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1;}
2327     Py_DECREF(__pyx_v_alias);
2328     __pyx_v_alias = __pyx_2;
2329     __pyx_2 = 0;
2330   }
2331   __pyx_L2:;
2332
2333   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":53
2334  *         alias = c_alias
2335  * 
2336  *     callback(node.type, alias, contact.totalsize, contact.currentsize, \             # <<<<<<<<<<<<<<
2337  *              contact.online)
2338  * 
2339  */
2340   __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1;}
2341   __pyx_3 = PyInt_FromLong(__pyx_v_contact->totalsize); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1;}
2342   __pyx_4 = PyInt_FromLong(__pyx_v_contact->currentsize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1;}
2343
2344   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":54
2345  * 
2346  *     callback(node.type, alias, contact.totalsize, contact.currentsize, \
2347  *              contact.online)             # <<<<<<<<<<<<<<
2348  * 
2349  * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
2350  */
2351   __pyx_5 = PyInt_FromLong(__pyx_v_contact->online); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1;}
2352   __pyx_6 = PyTuple_New(5); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1;}
2353   PyTuple_SET_ITEM(__pyx_6, 0, __pyx_2);
2354   Py_INCREF(__pyx_v_alias);
2355   PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_alias);
2356   PyTuple_SET_ITEM(__pyx_6, 2, __pyx_3);
2357   PyTuple_SET_ITEM(__pyx_6, 3, __pyx_4);
2358   PyTuple_SET_ITEM(__pyx_6, 4, __pyx_5);
2359   __pyx_2 = 0;
2360   __pyx_3 = 0;
2361   __pyx_4 = 0;
2362   __pyx_5 = 0;
2363   __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1;}
2364   Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
2365   Py_DECREF(__pyx_2); __pyx_2 = 0;
2366
2367   goto __pyx_L0;
2368   __pyx_L1:;
2369   Py_XDECREF(__pyx_2);
2370   Py_XDECREF(__pyx_3);
2371   Py_XDECREF(__pyx_4);
2372   Py_XDECREF(__pyx_5);
2373   Py_XDECREF(__pyx_6);
2374   __Pyx_WriteUnraisable("purple.__contact_node_cb");
2375   __pyx_L0:;
2376   Py_DECREF(__pyx_v_alias);
2377 }
2378
2379 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":56
2380  *              contact.online)
2381  * 
2382  * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):             # <<<<<<<<<<<<<<
2383  *     cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
2384  *     cdef char *c_name = NULL
2385  */
2386
2387 static  void __pyx_f_6purple___buddy_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
2388   PurpleBuddy *__pyx_v_buddy;
2389   char *__pyx_v_c_name;
2390   char *__pyx_v_c_alias;
2391   PyObject *__pyx_v_name;
2392   PyObject *__pyx_v_alias;
2393   int __pyx_1;
2394   PyObject *__pyx_2 = 0;
2395   PyObject *__pyx_3 = 0;
2396   __pyx_v_name = Py_None; Py_INCREF(Py_None);
2397   __pyx_v_alias = Py_None; Py_INCREF(Py_None);
2398
2399   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":57
2400  * 
2401  * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
2402  *     cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node             # <<<<<<<<<<<<<<
2403  *     cdef char *c_name = NULL
2404  *     cdef char *c_alias = NULL
2405  */
2406   __pyx_v_buddy = ((PurpleBuddy *)__pyx_v_node);
2407
2408
2409   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":58
2410  * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
2411  *     cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
2412  *     cdef char *c_name = NULL             # <<<<<<<<<<<<<<
2413  *     cdef char *c_alias = NULL
2414  * 
2415  */
2416   __pyx_v_c_name = NULL;
2417
2418
2419   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":59
2420  *     cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
2421  *     cdef char *c_name = NULL
2422  *     cdef char *c_alias = NULL             # <<<<<<<<<<<<<<
2423  * 
2424  *     c_name = <char *> blist.purple_buddy_get_name(buddy)
2425  */
2426   __pyx_v_c_alias = NULL;
2427
2428
2429   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":61
2430  *     cdef char *c_alias = NULL
2431  * 
2432  *     c_name = <char *> blist.purple_buddy_get_name(buddy)             # <<<<<<<<<<<<<<
2433  *     if c_name == NULL:
2434  *         name = None
2435  */
2436   __pyx_v_c_name = ((char *)purple_buddy_get_name(__pyx_v_buddy));
2437
2438   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":62
2439  * 
2440  *     c_name = <char *> blist.purple_buddy_get_name(buddy)
2441  *     if c_name == NULL:             # <<<<<<<<<<<<<<
2442  *         name = None
2443  *     else:
2444  */
2445   __pyx_1 = (__pyx_v_c_name == NULL);
2446   if (__pyx_1) {
2447
2448     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":63
2449  *     c_name = <char *> blist.purple_buddy_get_name(buddy)
2450  *     if c_name == NULL:
2451  *         name = None             # <<<<<<<<<<<<<<
2452  *     else:
2453  *         name = c_name
2454  */
2455     Py_INCREF(Py_None);
2456     Py_DECREF(__pyx_v_name);
2457     __pyx_v_name = Py_None;
2458     goto __pyx_L2;
2459   }
2460   /*else*/ {
2461
2462     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":65
2463  *         name = None
2464  *     else:
2465  *         name = c_name             # <<<<<<<<<<<<<<
2466  * 
2467  *     c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
2468  */
2469     __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1;}
2470     Py_DECREF(__pyx_v_name);
2471     __pyx_v_name = __pyx_2;
2472     __pyx_2 = 0;
2473   }
2474   __pyx_L2:;
2475
2476   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":67
2477  *         name = c_name
2478  * 
2479  *     c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)             # <<<<<<<<<<<<<<
2480  *     if c_alias == NULL:
2481  *         alias = None
2482  */
2483   __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
2484
2485   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":68
2486  * 
2487  *     c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
2488  *     if c_alias == NULL:             # <<<<<<<<<<<<<<
2489  *         alias = None
2490  *     else:
2491  */
2492   __pyx_1 = (__pyx_v_c_alias == NULL);
2493   if (__pyx_1) {
2494
2495     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":69
2496  *     c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
2497  *     if c_alias == NULL:
2498  *         alias = None             # <<<<<<<<<<<<<<
2499  *     else:
2500  *         alias = c_alias
2501  */
2502     Py_INCREF(Py_None);
2503     Py_DECREF(__pyx_v_alias);
2504     __pyx_v_alias = Py_None;
2505     goto __pyx_L3;
2506   }
2507   /*else*/ {
2508
2509     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":71
2510  *         alias = None
2511  *     else:
2512  *         alias = c_alias             # <<<<<<<<<<<<<<
2513  * 
2514  *     callback(node.type, name, alias)
2515  */
2516     __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
2517     Py_DECREF(__pyx_v_alias);
2518     __pyx_v_alias = __pyx_2;
2519     __pyx_2 = 0;
2520   }
2521   __pyx_L3:;
2522
2523   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":73
2524  *         alias = c_alias
2525  * 
2526  *     callback(node.type, name, alias)             # <<<<<<<<<<<<<<
2527  * 
2528  * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
2529  */
2530   __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
2531   __pyx_3 = PyTuple_New(3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
2532   PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
2533   Py_INCREF(__pyx_v_name);
2534   PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
2535   Py_INCREF(__pyx_v_alias);
2536   PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_alias);
2537   __pyx_2 = 0;
2538   __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
2539   Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
2540   Py_DECREF(__pyx_2); __pyx_2 = 0;
2541
2542   goto __pyx_L0;
2543   __pyx_L1:;
2544   Py_XDECREF(__pyx_2);
2545   Py_XDECREF(__pyx_3);
2546   __Pyx_WriteUnraisable("purple.__buddy_node_cb");
2547   __pyx_L0:;
2548   Py_DECREF(__pyx_v_name);
2549   Py_DECREF(__pyx_v_alias);
2550 }
2551
2552 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":75
2553  *     callback(node.type, name, alias)
2554  * 
2555  * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):             # <<<<<<<<<<<<<<
2556  *     cdef blist.PurpleChat *chat = <blist.PurpleChat *>node
2557  *     cdef char *c_name = NULL
2558  */
2559
2560 static  void __pyx_f_6purple___chat_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
2561   PurpleChat *__pyx_v_chat;
2562   char *__pyx_v_c_name;
2563   PyObject *__pyx_v_name;
2564   int __pyx_1;
2565   PyObject *__pyx_2 = 0;
2566   PyObject *__pyx_3 = 0;
2567   __pyx_v_name = Py_None; Py_INCREF(Py_None);
2568
2569   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":76
2570  * 
2571  * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
2572  *     cdef blist.PurpleChat *chat = <blist.PurpleChat *>node             # <<<<<<<<<<<<<<
2573  *     cdef char *c_name = NULL
2574  * 
2575  */
2576   __pyx_v_chat = ((PurpleChat *)__pyx_v_node);
2577
2578
2579   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":77
2580  * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
2581  *     cdef blist.PurpleChat *chat = <blist.PurpleChat *>node
2582  *     cdef char *c_name = NULL             # <<<<<<<<<<<<<<
2583  * 
2584  *     c_name = <char *> blist.purple_chat_get_name(chat)
2585  */
2586   __pyx_v_c_name = NULL;
2587
2588
2589   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":79
2590  *     cdef char *c_name = NULL
2591  * 
2592  *     c_name = <char *> blist.purple_chat_get_name(chat)             # <<<<<<<<<<<<<<
2593  *     if c_name == NULL:
2594  *         name = None
2595  */
2596   __pyx_v_c_name = ((char *)purple_chat_get_name(__pyx_v_chat));
2597
2598   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":80
2599  * 
2600  *     c_name = <char *> blist.purple_chat_get_name(chat)
2601  *     if c_name == NULL:             # <<<<<<<<<<<<<<
2602  *         name = None
2603  *     else:
2604  */
2605   __pyx_1 = (__pyx_v_c_name == NULL);
2606   if (__pyx_1) {
2607
2608     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":81
2609  *     c_name = <char *> blist.purple_chat_get_name(chat)
2610  *     if c_name == NULL:
2611  *         name = None             # <<<<<<<<<<<<<<
2612  *     else:
2613  *         name = c_name
2614  */
2615     Py_INCREF(Py_None);
2616     Py_DECREF(__pyx_v_name);
2617     __pyx_v_name = Py_None;
2618     goto __pyx_L2;
2619   }
2620   /*else*/ {
2621
2622     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":83
2623  *         name = None
2624  *     else:
2625  *         name = c_name             # <<<<<<<<<<<<<<
2626  * 
2627  *     callback(node.type, name)
2628  */
2629     __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1;}
2630     Py_DECREF(__pyx_v_name);
2631     __pyx_v_name = __pyx_2;
2632     __pyx_2 = 0;
2633   }
2634   __pyx_L2:;
2635
2636   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":85
2637  *         name = c_name
2638  * 
2639  *     callback(node.type, name)             # <<<<<<<<<<<<<<
2640  * 
2641  * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback):
2642  */
2643   __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
2644   __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
2645   PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
2646   Py_INCREF(__pyx_v_name);
2647   PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
2648   __pyx_2 = 0;
2649   __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1;}
2650   Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
2651   Py_DECREF(__pyx_2); __pyx_2 = 0;
2652
2653   goto __pyx_L0;
2654   __pyx_L1:;
2655   Py_XDECREF(__pyx_2);
2656   Py_XDECREF(__pyx_3);
2657   __Pyx_WriteUnraisable("purple.__chat_node_cb");
2658   __pyx_L0:;
2659   Py_DECREF(__pyx_v_name);
2660 }
2661
2662 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":87
2663  *     callback(node.type, name)
2664  * 
2665  * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback):             # <<<<<<<<<<<<<<
2666  *     callback(node.type)
2667  * 
2668  */
2669
2670 static  void __pyx_f_6purple___other_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
2671   PyObject *__pyx_1 = 0;
2672   PyObject *__pyx_2 = 0;
2673
2674   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":88
2675  * 
2676  * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback):
2677  *     callback(node.type)             # <<<<<<<<<<<<<<
2678  * 
2679  * cdef void new_list(blist.PurpleBuddyList *list):
2680  */
2681   __pyx_1 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1;}
2682   __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1;}
2683   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
2684   __pyx_1 = 0;
2685   __pyx_1 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1;}
2686   Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
2687   Py_DECREF(__pyx_1); __pyx_1 = 0;
2688
2689   goto __pyx_L0;
2690   __pyx_L1:;
2691   Py_XDECREF(__pyx_1);
2692   Py_XDECREF(__pyx_2);
2693   __Pyx_WriteUnraisable("purple.__other_node_cb");
2694   __pyx_L0:;
2695 }
2696
2697 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":90
2698  *     callback(node.type)
2699  * 
2700  * cdef void new_list(blist.PurpleBuddyList *list):             # <<<<<<<<<<<<<<
2701  *     """
2702  *     Sets UI-specific data on a buddy list.
2703  */
2704
2705 static PyObject *__pyx_kp_39;
2706 static PyObject *__pyx_kp_40;
2707 static PyObject *__pyx_kp_41;
2708
2709 static char __pyx_k_36[] = "blist";
2710 static char __pyx_k_37[] = "%s";
2711 static char __pyx_k_38[] = "new-list\n";
2712 static char __pyx_k_39[] = "new-list";
2713 static char __pyx_k_40[] = "new-list";
2714 static char __pyx_k_41[] = "new-list: TODO";
2715
2716 static  void __pyx_f_6purple_new_list(PurpleBuddyList *__pyx_v_list) {
2717   PyObject *__pyx_1 = 0;
2718   PyObject *__pyx_2 = 0;
2719   PyObject *__pyx_3 = 0;
2720   int __pyx_4;
2721
2722   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":94
2723  *     Sets UI-specific data on a buddy list.
2724  *     """
2725  *     debug.purple_debug_info("blist", "%s", "new-list\n")             # <<<<<<<<<<<<<<
2726  *     if blist_cbs.has_key("new-list"):
2727  *         (<object> blist_cbs["new-list"])("new-list: TODO")
2728  */
2729   purple_debug_info(__pyx_k_36, __pyx_k_37, __pyx_k_38);
2730
2731   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":95
2732  *     """
2733  *     debug.purple_debug_info("blist", "%s", "new-list\n")
2734  *     if blist_cbs.has_key("new-list"):             # <<<<<<<<<<<<<<
2735  *         (<object> blist_cbs["new-list"])("new-list: TODO")
2736  * 
2737  */
2738   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
2739   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
2740   Py_DECREF(__pyx_1); __pyx_1 = 0;
2741   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
2742   Py_INCREF(__pyx_kp_39);
2743   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_39);
2744   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
2745   Py_DECREF(__pyx_2); __pyx_2 = 0;
2746   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
2747   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
2748   Py_DECREF(__pyx_3); __pyx_3 = 0;
2749   if (__pyx_4) {
2750
2751     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":96
2752  *     debug.purple_debug_info("blist", "%s", "new-list\n")
2753  *     if blist_cbs.has_key("new-list"):
2754  *         (<object> blist_cbs["new-list"])("new-list: TODO")             # <<<<<<<<<<<<<<
2755  * 
2756  * cdef void new_node(blist.PurpleBlistNode *node):
2757  */
2758     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
2759     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_40); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
2760     Py_DECREF(__pyx_2); __pyx_2 = 0;
2761     __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
2762     Py_INCREF(__pyx_kp_41);
2763     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_41);
2764     __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
2765     Py_DECREF(__pyx_1); __pyx_1 = 0;
2766     Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
2767     Py_DECREF(__pyx_2); __pyx_2 = 0;
2768     goto __pyx_L2;
2769   }
2770   __pyx_L2:;
2771
2772   goto __pyx_L0;
2773   __pyx_L1:;
2774   Py_XDECREF(__pyx_1);
2775   Py_XDECREF(__pyx_2);
2776   Py_XDECREF(__pyx_3);
2777   __Pyx_WriteUnraisable("purple.new_list");
2778   __pyx_L0:;
2779 }
2780
2781 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":98
2782  *         (<object> blist_cbs["new-list"])("new-list: TODO")
2783  * 
2784  * cdef void new_node(blist.PurpleBlistNode *node):             # <<<<<<<<<<<<<<
2785  *     """
2786  *     Sets UI-specific data on a node.
2787  */
2788
2789 static PyObject *__pyx_kp_45;
2790 static PyObject *__pyx_kp_46;
2791 static PyObject *__pyx_kp_47;
2792 static PyObject *__pyx_kp_48;
2793 static PyObject *__pyx_kp_49;
2794 static PyObject *__pyx_kp_50;
2795
2796 static char __pyx_k_42[] = "blist";
2797 static char __pyx_k_43[] = "%s";
2798 static char __pyx_k_44[] = "new-node\n";
2799 static char __pyx_k_45[] = "new-node";
2800 static char __pyx_k_46[] = "new-node";
2801 static char __pyx_k_47[] = "new-node";
2802 static char __pyx_k_48[] = "new-node";
2803 static char __pyx_k_49[] = "new-node";
2804 static char __pyx_k_50[] = "new-node";
2805
2806 static  void __pyx_f_6purple_new_node(PurpleBlistNode *__pyx_v_node) {
2807   PyObject *__pyx_1 = 0;
2808   PyObject *__pyx_2 = 0;
2809   PyObject *__pyx_3 = 0;
2810   int __pyx_4;
2811
2812   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":102
2813  *     Sets UI-specific data on a node.
2814  *     """
2815  *     debug.purple_debug_info("blist", "%s", "new-node\n")             # <<<<<<<<<<<<<<
2816  *     if blist_cbs.has_key("new-node"):
2817  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
2818  */
2819   purple_debug_info(__pyx_k_42, __pyx_k_43, __pyx_k_44);
2820
2821   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":103
2822  *     """
2823  *     debug.purple_debug_info("blist", "%s", "new-node\n")
2824  *     if blist_cbs.has_key("new-node"):             # <<<<<<<<<<<<<<
2825  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
2826  *             __group_node_cb(node, blist_cbs["new-node"])
2827  */
2828   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
2829   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
2830   Py_DECREF(__pyx_1); __pyx_1 = 0;
2831   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
2832   Py_INCREF(__pyx_kp_45);
2833   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_45);
2834   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
2835   Py_DECREF(__pyx_2); __pyx_2 = 0;
2836   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
2837   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
2838   Py_DECREF(__pyx_3); __pyx_3 = 0;
2839   if (__pyx_4) {
2840
2841     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":104
2842  *     debug.purple_debug_info("blist", "%s", "new-node\n")
2843  *     if blist_cbs.has_key("new-node"):
2844  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:             # <<<<<<<<<<<<<<
2845  *             __group_node_cb(node, blist_cbs["new-node"])
2846  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
2847  */
2848     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
2849     if (__pyx_4) {
2850
2851       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":105
2852  *     if blist_cbs.has_key("new-node"):
2853  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
2854  *             __group_node_cb(node, blist_cbs["new-node"])             # <<<<<<<<<<<<<<
2855  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
2856  *             __contact_node_cb(node, blist_cbs["new-node"])
2857  */
2858       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
2859       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_46); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
2860       Py_DECREF(__pyx_2); __pyx_2 = 0;
2861       __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
2862       Py_DECREF(__pyx_1); __pyx_1 = 0;
2863       goto __pyx_L3;
2864     }
2865
2866     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":106
2867  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
2868  *             __group_node_cb(node, blist_cbs["new-node"])
2869  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:             # <<<<<<<<<<<<<<
2870  *             __contact_node_cb(node, blist_cbs["new-node"])
2871  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
2872  */
2873     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
2874     if (__pyx_4) {
2875
2876       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":107
2877  *             __group_node_cb(node, blist_cbs["new-node"])
2878  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
2879  *             __contact_node_cb(node, blist_cbs["new-node"])             # <<<<<<<<<<<<<<
2880  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
2881  *             __buddy_node_cb(node, blist_cbs["new-node"])
2882  */
2883       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
2884       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_47); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
2885       Py_DECREF(__pyx_3); __pyx_3 = 0;
2886       __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
2887       Py_DECREF(__pyx_2); __pyx_2 = 0;
2888       goto __pyx_L3;
2889     }
2890
2891     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":108
2892  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
2893  *             __contact_node_cb(node, blist_cbs["new-node"])
2894  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:             # <<<<<<<<<<<<<<
2895  *             __buddy_node_cb(node, blist_cbs["new-node"])
2896  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
2897  */
2898     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
2899     if (__pyx_4) {
2900
2901       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":109
2902  *             __contact_node_cb(node, blist_cbs["new-node"])
2903  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
2904  *             __buddy_node_cb(node, blist_cbs["new-node"])             # <<<<<<<<<<<<<<
2905  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
2906  *             __chat_node_cb(node, blist_cbs["new-node"])
2907  */
2908       __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
2909       __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_48); if (!__pyx_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
2910       Py_DECREF(__pyx_1); __pyx_1 = 0;
2911       __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
2912       Py_DECREF(__pyx_3); __pyx_3 = 0;
2913       goto __pyx_L3;
2914     }
2915
2916     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":110
2917  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
2918  *             __buddy_node_cb(node, blist_cbs["new-node"])
2919  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:             # <<<<<<<<<<<<<<
2920  *             __chat_node_cb(node, blist_cbs["new-node"])
2921  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
2922  */
2923     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
2924     if (__pyx_4) {
2925
2926       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":111
2927  *             __buddy_node_cb(node, blist_cbs["new-node"])
2928  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
2929  *             __chat_node_cb(node, blist_cbs["new-node"])             # <<<<<<<<<<<<<<
2930  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
2931  *             __other_node_cb(node, blist_cbs["new-node"])
2932  */
2933       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1;}
2934       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_49); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1;}
2935       Py_DECREF(__pyx_2); __pyx_2 = 0;
2936       __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
2937       Py_DECREF(__pyx_1); __pyx_1 = 0;
2938       goto __pyx_L3;
2939     }
2940
2941     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":112
2942  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
2943  *             __chat_node_cb(node, blist_cbs["new-node"])
2944  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:             # <<<<<<<<<<<<<<
2945  *             __other_node_cb(node, blist_cbs["new-node"])
2946  * 
2947  */
2948     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
2949     if (__pyx_4) {
2950
2951       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":113
2952  *             __chat_node_cb(node, blist_cbs["new-node"])
2953  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
2954  *             __other_node_cb(node, blist_cbs["new-node"])             # <<<<<<<<<<<<<<
2955  * 
2956  * cdef void show(blist.PurpleBuddyList *list):
2957  */
2958       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1;}
2959       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_50); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1;}
2960       Py_DECREF(__pyx_3); __pyx_3 = 0;
2961       __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
2962       Py_DECREF(__pyx_2); __pyx_2 = 0;
2963       goto __pyx_L3;
2964     }
2965     __pyx_L3:;
2966     goto __pyx_L2;
2967   }
2968   __pyx_L2:;
2969
2970   goto __pyx_L0;
2971   __pyx_L1:;
2972   Py_XDECREF(__pyx_1);
2973   Py_XDECREF(__pyx_2);
2974   Py_XDECREF(__pyx_3);
2975   __Pyx_WriteUnraisable("purple.new_node");
2976   __pyx_L0:;
2977 }
2978
2979 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":115
2980  *             __other_node_cb(node, blist_cbs["new-node"])
2981  * 
2982  * cdef void show(blist.PurpleBuddyList *list):             # <<<<<<<<<<<<<<
2983  *     """
2984  *     The core will call this when it's finished doing its core stuff.
2985  */
2986
2987 static char __pyx_k_54[] = "show";
2988 static char __pyx_k_55[] = "show";
2989
2990 static PyObject *__pyx_kp_54;
2991 static PyObject *__pyx_kp_55;
2992
2993 static PyObject *__pyx_kp_56;
2994
2995 static char __pyx_k_51[] = "blist";
2996 static char __pyx_k_52[] = "%s";
2997 static char __pyx_k_53[] = "show\n";
2998 static char __pyx_k_56[] = "show: TODO";
2999
3000 static  void __pyx_f_6purple_show(PurpleBuddyList *__pyx_v_list) {
3001   PyObject *__pyx_1 = 0;
3002   PyObject *__pyx_2 = 0;
3003   PyObject *__pyx_3 = 0;
3004   int __pyx_4;
3005
3006   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":119
3007  *     The core will call this when it's finished doing its core stuff.
3008  *     """
3009  *     debug.purple_debug_info("blist", "%s", "show\n")             # <<<<<<<<<<<<<<
3010  *     if blist_cbs.has_key("show"):
3011  *         (<object> blist_cbs["show"])("show: TODO")
3012  */
3013   purple_debug_info(__pyx_k_51, __pyx_k_52, __pyx_k_53);
3014
3015   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":120
3016  *     """
3017  *     debug.purple_debug_info("blist", "%s", "show\n")
3018  *     if blist_cbs.has_key("show"):             # <<<<<<<<<<<<<<
3019  *         (<object> blist_cbs["show"])("show: TODO")
3020  * 
3021  */
3022   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
3023   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
3024   Py_DECREF(__pyx_1); __pyx_1 = 0;
3025   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
3026   Py_INCREF(__pyx_kp_54);
3027   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_54);
3028   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
3029   Py_DECREF(__pyx_2); __pyx_2 = 0;
3030   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
3031   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
3032   Py_DECREF(__pyx_3); __pyx_3 = 0;
3033   if (__pyx_4) {
3034
3035     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":121
3036  *     debug.purple_debug_info("blist", "%s", "show\n")
3037  *     if blist_cbs.has_key("show"):
3038  *         (<object> blist_cbs["show"])("show: TODO")             # <<<<<<<<<<<<<<
3039  * 
3040  * cdef void update(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
3041  */
3042     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1;}
3043     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_55); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1;}
3044     Py_DECREF(__pyx_2); __pyx_2 = 0;
3045     __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1;}
3046     Py_INCREF(__pyx_kp_56);
3047     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_56);
3048     __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1;}
3049     Py_DECREF(__pyx_1); __pyx_1 = 0;
3050     Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
3051     Py_DECREF(__pyx_2); __pyx_2 = 0;
3052     goto __pyx_L2;
3053   }
3054   __pyx_L2:;
3055
3056   goto __pyx_L0;
3057   __pyx_L1:;
3058   Py_XDECREF(__pyx_1);
3059   Py_XDECREF(__pyx_2);
3060   Py_XDECREF(__pyx_3);
3061   __Pyx_WriteUnraisable("purple.show");
3062   __pyx_L0:;
3063 }
3064
3065 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":123
3066  *         (<object> blist_cbs["show"])("show: TODO")
3067  * 
3068  * cdef void update(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):             # <<<<<<<<<<<<<<
3069  *     """
3070  *     This will update a node in the buddy list.
3071  */
3072
3073 static char __pyx_k_60[] = "update";
3074 static char __pyx_k_61[] = "update";
3075 static char __pyx_k_62[] = "update";
3076 static char __pyx_k_63[] = "update";
3077 static char __pyx_k_64[] = "update";
3078 static char __pyx_k_65[] = "update";
3079
3080 static PyObject *__pyx_kp_60;
3081 static PyObject *__pyx_kp_61;
3082 static PyObject *__pyx_kp_62;
3083 static PyObject *__pyx_kp_63;
3084 static PyObject *__pyx_kp_64;
3085 static PyObject *__pyx_kp_65;
3086
3087
3088 static char __pyx_k_57[] = "blist";
3089 static char __pyx_k_58[] = "%s";
3090 static char __pyx_k_59[] = "update\n";
3091
3092 static  void __pyx_f_6purple_update(PurpleBuddyList *__pyx_v_list, PurpleBlistNode *__pyx_v_node) {
3093   PyObject *__pyx_1 = 0;
3094   PyObject *__pyx_2 = 0;
3095   PyObject *__pyx_3 = 0;
3096   int __pyx_4;
3097
3098   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":127
3099  *     This will update a node in the buddy list.
3100  *     """
3101  *     debug.purple_debug_info("blist", "%s", "update\n")             # <<<<<<<<<<<<<<
3102  *     if blist_cbs.has_key("update"):
3103  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3104  */
3105   purple_debug_info(__pyx_k_57, __pyx_k_58, __pyx_k_59);
3106
3107   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":128
3108  *     """
3109  *     debug.purple_debug_info("blist", "%s", "update\n")
3110  *     if blist_cbs.has_key("update"):             # <<<<<<<<<<<<<<
3111  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3112  *             __group_node_cb(node, blist_cbs["update"])
3113  */
3114   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1;}
3115   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1;}
3116   Py_DECREF(__pyx_1); __pyx_1 = 0;
3117   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1;}
3118   Py_INCREF(__pyx_kp_60);
3119   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_60);
3120   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1;}
3121   Py_DECREF(__pyx_2); __pyx_2 = 0;
3122   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
3123   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1;}
3124   Py_DECREF(__pyx_3); __pyx_3 = 0;
3125   if (__pyx_4) {
3126
3127     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":129
3128  *     debug.purple_debug_info("blist", "%s", "update\n")
3129  *     if blist_cbs.has_key("update"):
3130  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:             # <<<<<<<<<<<<<<
3131  *             __group_node_cb(node, blist_cbs["update"])
3132  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3133  */
3134     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
3135     if (__pyx_4) {
3136
3137       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":130
3138  *     if blist_cbs.has_key("update"):
3139  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3140  *             __group_node_cb(node, blist_cbs["update"])             # <<<<<<<<<<<<<<
3141  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3142  *             __contact_node_cb(node, blist_cbs["update"])
3143  */
3144       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1;}
3145       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_61); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1;}
3146       Py_DECREF(__pyx_2); __pyx_2 = 0;
3147       __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
3148       Py_DECREF(__pyx_1); __pyx_1 = 0;
3149       goto __pyx_L3;
3150     }
3151
3152     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":131
3153  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3154  *             __group_node_cb(node, blist_cbs["update"])
3155  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:             # <<<<<<<<<<<<<<
3156  *             __contact_node_cb(node, blist_cbs["update"])
3157  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3158  */
3159     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
3160     if (__pyx_4) {
3161
3162       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":132
3163  *             __group_node_cb(node, blist_cbs["update"])
3164  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3165  *             __contact_node_cb(node, blist_cbs["update"])             # <<<<<<<<<<<<<<
3166  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3167  *             __buddy_node_cb(node, blist_cbs["update"])
3168  */
3169       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1;}
3170       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_62); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1;}
3171       Py_DECREF(__pyx_3); __pyx_3 = 0;
3172       __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
3173       Py_DECREF(__pyx_2); __pyx_2 = 0;
3174       goto __pyx_L3;
3175     }
3176
3177     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":133
3178  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3179  *             __contact_node_cb(node, blist_cbs["update"])
3180  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:             # <<<<<<<<<<<<<<
3181  *             __buddy_node_cb(node, blist_cbs["update"])
3182  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3183  */
3184     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
3185     if (__pyx_4) {
3186
3187       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":134
3188  *             __contact_node_cb(node, blist_cbs["update"])
3189  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3190  *             __buddy_node_cb(node, blist_cbs["update"])             # <<<<<<<<<<<<<<
3191  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3192  *             __chat_node_cb(node, blist_cbs["update"])
3193  */
3194       __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
3195       __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_63); if (!__pyx_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
3196       Py_DECREF(__pyx_1); __pyx_1 = 0;
3197       __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
3198       Py_DECREF(__pyx_3); __pyx_3 = 0;
3199       goto __pyx_L3;
3200     }
3201
3202     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":135
3203  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3204  *             __buddy_node_cb(node, blist_cbs["update"])
3205  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:             # <<<<<<<<<<<<<<
3206  *             __chat_node_cb(node, blist_cbs["update"])
3207  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3208  */
3209     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
3210     if (__pyx_4) {
3211
3212       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":136
3213  *             __buddy_node_cb(node, blist_cbs["update"])
3214  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3215  *             __chat_node_cb(node, blist_cbs["update"])             # <<<<<<<<<<<<<<
3216  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3217  *             __other_node_cb(node, blist_cbs["update"])
3218  */
3219       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
3220       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_64); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1;}
3221       Py_DECREF(__pyx_2); __pyx_2 = 0;
3222       __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
3223       Py_DECREF(__pyx_1); __pyx_1 = 0;
3224       goto __pyx_L3;
3225     }
3226
3227     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":137
3228  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3229  *             __chat_node_cb(node, blist_cbs["update"])
3230  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:             # <<<<<<<<<<<<<<
3231  *             __other_node_cb(node, blist_cbs["update"])
3232  * 
3233  */
3234     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
3235     if (__pyx_4) {
3236
3237       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":138
3238  *             __chat_node_cb(node, blist_cbs["update"])
3239  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3240  *             __other_node_cb(node, blist_cbs["update"])             # <<<<<<<<<<<<<<
3241  * 
3242  * cdef void remove(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
3243  */
3244       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1;}
3245       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_65); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1;}
3246       Py_DECREF(__pyx_3); __pyx_3 = 0;
3247       __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
3248       Py_DECREF(__pyx_2); __pyx_2 = 0;
3249       goto __pyx_L3;
3250     }
3251     __pyx_L3:;
3252     goto __pyx_L2;
3253   }
3254   __pyx_L2:;
3255
3256   goto __pyx_L0;
3257   __pyx_L1:;
3258   Py_XDECREF(__pyx_1);
3259   Py_XDECREF(__pyx_2);
3260   Py_XDECREF(__pyx_3);
3261   __Pyx_WriteUnraisable("purple.update");
3262   __pyx_L0:;
3263 }
3264
3265 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":140
3266  *             __other_node_cb(node, blist_cbs["update"])
3267  * 
3268  * cdef void remove(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):             # <<<<<<<<<<<<<<
3269  *     """
3270  *     This removes a node from the list.
3271  */
3272
3273 static char __pyx_k_69[] = "remove";
3274 static char __pyx_k_70[] = "remove";
3275 static char __pyx_k_71[] = "remove";
3276 static char __pyx_k_72[] = "remove";
3277 static char __pyx_k_73[] = "remove";
3278 static char __pyx_k_74[] = "remove";
3279
3280 static PyObject *__pyx_kp_69;
3281 static PyObject *__pyx_kp_70;
3282 static PyObject *__pyx_kp_71;
3283 static PyObject *__pyx_kp_72;
3284 static PyObject *__pyx_kp_73;
3285 static PyObject *__pyx_kp_74;
3286
3287
3288 static char __pyx_k_66[] = "blist";
3289 static char __pyx_k_67[] = "%s";
3290 static char __pyx_k_68[] = "remove\n";
3291
3292 static  void __pyx_f_6purple_remove(PurpleBuddyList *__pyx_v_list, PurpleBlistNode *__pyx_v_node) {
3293   PyObject *__pyx_1 = 0;
3294   PyObject *__pyx_2 = 0;
3295   PyObject *__pyx_3 = 0;
3296   int __pyx_4;
3297
3298   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":144
3299  *     This removes a node from the list.
3300  *     """
3301  *     debug.purple_debug_info("blist", "%s", "remove\n")             # <<<<<<<<<<<<<<
3302  *     if blist_cbs.has_key("remove"):
3303  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3304  */
3305   purple_debug_info(__pyx_k_66, __pyx_k_67, __pyx_k_68);
3306
3307   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":145
3308  *     """
3309  *     debug.purple_debug_info("blist", "%s", "remove\n")
3310  *     if blist_cbs.has_key("remove"):             # <<<<<<<<<<<<<<
3311  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3312  *             __group_node_cb(node, blist_cbs["remove"])
3313  */
3314   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
3315   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
3316   Py_DECREF(__pyx_1); __pyx_1 = 0;
3317   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
3318   Py_INCREF(__pyx_kp_69);
3319   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_69);
3320   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
3321   Py_DECREF(__pyx_2); __pyx_2 = 0;
3322   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
3323   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
3324   Py_DECREF(__pyx_3); __pyx_3 = 0;
3325   if (__pyx_4) {
3326
3327     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":146
3328  *     debug.purple_debug_info("blist", "%s", "remove\n")
3329  *     if blist_cbs.has_key("remove"):
3330  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:             # <<<<<<<<<<<<<<
3331  *             __group_node_cb(node, blist_cbs["remove"])
3332  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3333  */
3334     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
3335     if (__pyx_4) {
3336
3337       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":147
3338  *     if blist_cbs.has_key("remove"):
3339  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3340  *             __group_node_cb(node, blist_cbs["remove"])             # <<<<<<<<<<<<<<
3341  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3342  *             __contact_node_cb(node, blist_cbs["remove"])
3343  */
3344       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1;}
3345       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_70); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1;}
3346       Py_DECREF(__pyx_2); __pyx_2 = 0;
3347       __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
3348       Py_DECREF(__pyx_1); __pyx_1 = 0;
3349       goto __pyx_L3;
3350     }
3351
3352     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":148
3353  *         if node.type == blist.PURPLE_BLIST_GROUP_NODE:
3354  *             __group_node_cb(node, blist_cbs["remove"])
3355  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:             # <<<<<<<<<<<<<<
3356  *             __contact_node_cb(node, blist_cbs["remove"])
3357  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3358  */
3359     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
3360     if (__pyx_4) {
3361
3362       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":149
3363  *             __group_node_cb(node, blist_cbs["remove"])
3364  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3365  *             __contact_node_cb(node, blist_cbs["remove"])             # <<<<<<<<<<<<<<
3366  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3367  *             __buddy_node_cb(node, blist_cbs["remove"])
3368  */
3369       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1;}
3370       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_71); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1;}
3371       Py_DECREF(__pyx_3); __pyx_3 = 0;
3372       __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
3373       Py_DECREF(__pyx_2); __pyx_2 = 0;
3374       goto __pyx_L3;
3375     }
3376
3377     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":150
3378  *         elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
3379  *             __contact_node_cb(node, blist_cbs["remove"])
3380  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:             # <<<<<<<<<<<<<<
3381  *             __buddy_node_cb(node, blist_cbs["remove"])
3382  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3383  */
3384     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
3385     if (__pyx_4) {
3386
3387       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":151
3388  *             __contact_node_cb(node, blist_cbs["remove"])
3389  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3390  *             __buddy_node_cb(node, blist_cbs["remove"])             # <<<<<<<<<<<<<<
3391  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3392  *             __chat_node_cb(node, blist_cbs["remove"])
3393  */
3394       __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1;}
3395       __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_72); if (!__pyx_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1;}
3396       Py_DECREF(__pyx_1); __pyx_1 = 0;
3397       __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
3398       Py_DECREF(__pyx_3); __pyx_3 = 0;
3399       goto __pyx_L3;
3400     }
3401
3402     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":152
3403  *         elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
3404  *             __buddy_node_cb(node, blist_cbs["remove"])
3405  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:             # <<<<<<<<<<<<<<
3406  *             __chat_node_cb(node, blist_cbs["remove"])
3407  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3408  */
3409     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
3410     if (__pyx_4) {
3411
3412       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":153
3413  *             __buddy_node_cb(node, blist_cbs["remove"])
3414  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3415  *             __chat_node_cb(node, blist_cbs["remove"])             # <<<<<<<<<<<<<<
3416  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3417  *             __other_node_cb(node, blist_cbs["remove"])
3418  */
3419       __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1;}
3420       __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_73); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1;}
3421       Py_DECREF(__pyx_2); __pyx_2 = 0;
3422       __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
3423       Py_DECREF(__pyx_1); __pyx_1 = 0;
3424       goto __pyx_L3;
3425     }
3426
3427     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":154
3428  *         elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
3429  *             __chat_node_cb(node, blist_cbs["remove"])
3430  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:             # <<<<<<<<<<<<<<
3431  *             __other_node_cb(node, blist_cbs["remove"])
3432  * 
3433  */
3434     __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
3435     if (__pyx_4) {
3436
3437       /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":155
3438  *             __chat_node_cb(node, blist_cbs["remove"])
3439  *         elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
3440  *             __other_node_cb(node, blist_cbs["remove"])             # <<<<<<<<<<<<<<
3441  * 
3442  * cdef void destroy(blist.PurpleBuddyList *list):
3443  */
3444       __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
3445       __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_74); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
3446       Py_DECREF(__pyx_3); __pyx_3 = 0;
3447       __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
3448       Py_DECREF(__pyx_2); __pyx_2 = 0;
3449       goto __pyx_L3;
3450     }
3451     __pyx_L3:;
3452     goto __pyx_L2;
3453   }
3454   __pyx_L2:;
3455
3456   goto __pyx_L0;
3457   __pyx_L1:;
3458   Py_XDECREF(__pyx_1);
3459   Py_XDECREF(__pyx_2);
3460   Py_XDECREF(__pyx_3);
3461   __Pyx_WriteUnraisable("purple.remove");
3462   __pyx_L0:;
3463 }
3464
3465 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":157
3466  *             __other_node_cb(node, blist_cbs["remove"])
3467  * 
3468  * cdef void destroy(blist.PurpleBuddyList *list):             # <<<<<<<<<<<<<<
3469  *     """
3470  *     When the list gets destroyed, this gets called to destroy the UI.
3471  */
3472
3473 static char __pyx_k_78[] = "destroy";
3474 static char __pyx_k_79[] = "destroy";
3475
3476 static PyObject *__pyx_kp_78;
3477 static PyObject *__pyx_kp_79;
3478
3479 static PyObject *__pyx_kp_80;
3480
3481 static char __pyx_k_75[] = "blist";
3482 static char __pyx_k_76[] = "%s";
3483 static char __pyx_k_77[] = "destroy\n";
3484 static char __pyx_k_80[] = "destroy: TODO";
3485
3486 static  void __pyx_f_6purple_destroy(PurpleBuddyList *__pyx_v_list) {
3487   PyObject *__pyx_1 = 0;
3488   PyObject *__pyx_2 = 0;
3489   PyObject *__pyx_3 = 0;
3490   int __pyx_4;
3491
3492   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":161
3493  *     When the list gets destroyed, this gets called to destroy the UI.
3494  *     """
3495  *     debug.purple_debug_info("blist", "%s", "destroy\n")             # <<<<<<<<<<<<<<
3496  *     if blist_cbs.has_key("destroy"):
3497  *         (<object> blist_cbs["destroy"])("destroy: TODO")
3498  */
3499   purple_debug_info(__pyx_k_75, __pyx_k_76, __pyx_k_77);
3500
3501   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":162
3502  *     """
3503  *     debug.purple_debug_info("blist", "%s", "destroy\n")
3504  *     if blist_cbs.has_key("destroy"):             # <<<<<<<<<<<<<<
3505  *         (<object> blist_cbs["destroy"])("destroy: TODO")
3506  * 
3507  */
3508   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
3509   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
3510   Py_DECREF(__pyx_1); __pyx_1 = 0;
3511   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
3512   Py_INCREF(__pyx_kp_78);
3513   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_78);
3514   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
3515   Py_DECREF(__pyx_2); __pyx_2 = 0;
3516   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
3517   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
3518   Py_DECREF(__pyx_3); __pyx_3 = 0;
3519   if (__pyx_4) {
3520
3521     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":163
3522  *     debug.purple_debug_info("blist", "%s", "destroy\n")
3523  *     if blist_cbs.has_key("destroy"):
3524  *         (<object> blist_cbs["destroy"])("destroy: TODO")             # <<<<<<<<<<<<<<
3525  * 
3526  * cdef void set_visible(blist.PurpleBuddyList *list, glib.gboolean show):
3527  */
3528     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1;}
3529     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_79); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1;}
3530     Py_DECREF(__pyx_2); __pyx_2 = 0;
3531     __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1;}
3532     Py_INCREF(__pyx_kp_80);
3533     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_80);
3534     __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1;}
3535     Py_DECREF(__pyx_1); __pyx_1 = 0;
3536     Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
3537     Py_DECREF(__pyx_2); __pyx_2 = 0;
3538     goto __pyx_L2;
3539   }
3540   __pyx_L2:;
3541
3542   goto __pyx_L0;
3543   __pyx_L1:;
3544   Py_XDECREF(__pyx_1);
3545   Py_XDECREF(__pyx_2);
3546   Py_XDECREF(__pyx_3);
3547   __Pyx_WriteUnraisable("purple.destroy");
3548   __pyx_L0:;
3549 }
3550
3551 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":165
3552  *         (<object> blist_cbs["destroy"])("destroy: TODO")
3553  * 
3554  * cdef void set_visible(blist.PurpleBuddyList *list, glib.gboolean show):             # <<<<<<<<<<<<<<
3555  *     """
3556  *     Hides or unhides the buddy list.
3557  */
3558
3559 static PyObject *__pyx_kp_84;
3560 static PyObject *__pyx_kp_85;
3561 static PyObject *__pyx_kp_86;
3562
3563 static char __pyx_k_81[] = "blist";
3564 static char __pyx_k_82[] = "%s";
3565 static char __pyx_k_83[] = "set-visible\n";
3566 static char __pyx_k_84[] = "set-visible";
3567 static char __pyx_k_85[] = "set-visible";
3568 static char __pyx_k_86[] = "set-visible: TODO";
3569
3570 static  void __pyx_f_6purple_set_visible(PurpleBuddyList *__pyx_v_list, gboolean __pyx_v_show) {
3571   PyObject *__pyx_1 = 0;
3572   PyObject *__pyx_2 = 0;
3573   PyObject *__pyx_3 = 0;
3574   int __pyx_4;
3575
3576   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":169
3577  *     Hides or unhides the buddy list.
3578  *     """
3579  *     debug.purple_debug_info("blist", "%s", "set-visible\n")             # <<<<<<<<<<<<<<
3580  *     if blist_cbs.has_key("set-visible"):
3581  *         (<object> blist_cbs["set-visible"])("set-visible: TODO")
3582  */
3583   purple_debug_info(__pyx_k_81, __pyx_k_82, __pyx_k_83);
3584
3585   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":170
3586  *     """
3587  *     debug.purple_debug_info("blist", "%s", "set-visible\n")
3588  *     if blist_cbs.has_key("set-visible"):             # <<<<<<<<<<<<<<
3589  *         (<object> blist_cbs["set-visible"])("set-visible: TODO")
3590  * 
3591  */
3592   __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
3593   __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
3594   Py_DECREF(__pyx_1); __pyx_1 = 0;
3595   __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
3596   Py_INCREF(__pyx_kp_84);
3597   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_84);
3598   __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
3599   Py_DECREF(__pyx_2); __pyx_2 = 0;
3600   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
3601   __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
3602   Py_DECREF(__pyx_3); __pyx_3 = 0;
3603   if (__pyx_4) {
3604
3605     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":171
3606  *     debug.purple_debug_info("blist", "%s", "set-visible\n")
3607  *     if blist_cbs.has_key("set-visible"):
3608  *         (<object> blist_cbs["set-visible"])("set-visible: TODO")             # <<<<<<<<<<<<<<
3609  * 
3610  * cdef void request_add_buddy(account.PurpleAccount *c_account, \
3611  */
3612     __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
3613     __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_85); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
3614     Py_DECREF(__pyx_2); __pyx_2 = 0;
3615     __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
3616     Py_INCREF(__pyx_kp_86);
3617     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_86);
3618     __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
3619     Py_DECREF(__pyx_1); __pyx_1 = 0;
3620     Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
3621     Py_DECREF(__pyx_2); __pyx_2 = 0;
3622     goto __pyx_L2;
3623   }
3624   __pyx_L2:;
3625
3626   goto __pyx_L0;
3627   __pyx_L1:;
3628   Py_XDECREF(__pyx_1);
3629   Py_XDECREF(__pyx_2);
3630   Py_XDECREF(__pyx_3);
3631   __Pyx_WriteUnraisable("purple.set_visible");
3632   __pyx_L0:;
3633 }
3634
3635 /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":173
3636  *         (<object> blist_cbs["set-visible"])("set-visible: TODO")
3637  * 
3638  * cdef void request_add_buddy(account.PurpleAccount *c_account, \             # <<<<<<<<<<<<<<
3639  *         const_char *c_buddy_username, const_char *c_buddy_group, \
3640  *         const_char *c_buddy_alias):
3641  */
3642
3643 static PyObject *__pyx_kp_90;
3644 static PyObject *__pyx_kp_91;
3645
3646 static char __pyx_k_87[] = "blist";
3647 static char __pyx_k_88[] = "%s";
3648 static char __pyx_k_89[] = "request-add-buddy\n";
3649 static char __pyx_k_90[] = "request-add-buddy";
3650 static char __pyx_k_91[] = "request-add-buddy";
3651
3652 static  void __pyx_f_6purple_request_add_buddy(PurpleAccount *__pyx_v_c_account, const char *__pyx_v_c_buddy_username, const char *__pyx_v_c_buddy_group, const char *__pyx_v_c_buddy_alias) {
3653   PyObject *__pyx_v_username;
3654   PyObject *__pyx_v_protocol_id;
3655   PyObject *__pyx_v_buddy_username;
3656   PyObject *__pyx_v_buddy_group;
3657   PyObject *__pyx_v_buddy_alias;
3658   PyObject *__pyx_1 = 0;
3659   int __pyx_2;
3660   PyObject *__pyx_3 = 0;
3661   PyObject *__pyx_4 = 0;
3662   __pyx_v_username = Py_None; Py_INCREF(Py_None);
3663   __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
3664   __pyx_v_buddy_username = Py_None; Py_INCREF(Py_None);
3665   __pyx_v_buddy_group = Py_None; Py_INCREF(Py_None);
3666   __pyx_v_buddy_alias = Py_None; Py_INCREF(Py_None);
3667
3668   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":180
3669  *     list.
3670  *     """
3671  *     debug.purple_debug_info("blist", "%s", "request-add-buddy\n")             # <<<<<<<<<<<<<<
3672  * 
3673  *     username = account.purple_account_get_username(c_account)
3674  */
3675   purple_debug_info(__pyx_k_87, __pyx_k_88, __pyx_k_89);
3676
3677   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":182
3678  *     debug.purple_debug_info("blist", "%s", "request-add-buddy\n")
3679  * 
3680  *     username = account.purple_account_get_username(c_account)             # <<<<<<<<<<<<<<
3681  *     protocol_id = account.purple_account_get_protocol_id(c_account)
3682  * 
3683  */
3684   __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
3685   Py_DECREF(__pyx_v_username);
3686   __pyx_v_username = __pyx_1;
3687   __pyx_1 = 0;
3688
3689   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":183
3690  * 
3691  *     username = account.purple_account_get_username(c_account)
3692  *     protocol_id = account.purple_account_get_protocol_id(c_account)             # <<<<<<<<<<<<<<
3693  * 
3694  *     if c_buddy_username:
3695  */
3696   __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1;}
3697   Py_DECREF(__pyx_v_protocol_id);
3698   __pyx_v_protocol_id = __pyx_1;
3699   __pyx_1 = 0;
3700
3701   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":185
3702  *     protocol_id = account.purple_account_get_protocol_id(c_account)
3703  * 
3704  *     if c_buddy_username:             # <<<<<<<<<<<<<<
3705  *         buddy_username = <char *> c_buddy_username
3706  *     else:
3707  */
3708   __pyx_2 = (__pyx_v_c_buddy_username != 0);
3709   if (__pyx_2) {
3710
3711     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":186
3712  * 
3713  *     if c_buddy_username:
3714  *         buddy_username = <char *> c_buddy_username             # <<<<<<<<<<<<<<
3715  *     else:
3716  *         buddy_username = None
3717  */
3718     __pyx_1 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_buddy_username)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
3719     Py_DECREF(__pyx_v_buddy_username);
3720     __pyx_v_buddy_username = __pyx_1;
3721     __pyx_1 = 0;
3722     goto __pyx_L2;
3723   }
3724   /*else*/ {
3725
3726     /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":188
3727  *         buddy_username = <char *> c_buddy_username
3728  *     else:
3729  *         buddy_username = None             # <<<<<<<<<<<<<<
3730  * 
3731  *     if c_buddy_group:
3732  */
3733     Py_INCREF(Py_None);
3734     Py_DECREF(__pyx_v_buddy_username);
3735     __pyx_v_buddy_username = Py_None;
3736   }
3737   __pyx_L2:;
3738
3739   /* "/opt/wrk/indt/workspace/git-svn/carman/python-purple/blist_cbs.pxd":190
3740  *         buddy_username = None
3741  * 
3742  *     if c_buddy_group:             # <<<<<<<<<<<<<<
3743  *         buddy_group = <char *> c_buddy_group