--- /dev/null
+/* Generated by Cython 0.10 on Tue Dec 9 09:17:03 2008 */
+
+#define PY_SSIZE_T_CLEAN
+#include "Python.h"
+#include "structmember.h"
+#ifndef PY_LONG_LONG
+ #define PY_LONG_LONG LONG_LONG
+#endif
+#ifndef DL_EXPORT
+ #define DL_EXPORT(t) t
+#endif
+#if PY_VERSION_HEX < 0x02040000
+ #define METH_COEXIST 0
+#endif
+#if PY_VERSION_HEX < 0x02050000
+ typedef int Py_ssize_t;
+ #define PY_SSIZE_T_MAX INT_MAX
+ #define PY_SSIZE_T_MIN INT_MIN
+ #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
+ #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
+ #define PyNumber_Index(o) PyNumber_Int(o)
+ #define PyIndex_Check(o) PyNumber_Check(o)
+#endif
+#if PY_VERSION_HEX < 0x02060000
+ #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
+ #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
+ #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
+ #define PyVarObject_HEAD_INIT(type, size) \
+ PyObject_HEAD_INIT(type) size,
+ #define PyType_Modified(t)
+
+ typedef struct {
+ void *buf;
+ PyObject *obj;
+ Py_ssize_t len;
+ Py_ssize_t itemsize;
+ int readonly;
+ int ndim;
+ char *format;
+ Py_ssize_t *shape;
+ Py_ssize_t *strides;
+ Py_ssize_t *suboffsets;
+ void *internal;
+ } Py_buffer;
+
+ #define PyBUF_SIMPLE 0
+ #define PyBUF_WRITABLE 0x0001
+ #define PyBUF_LOCK 0x0002
+ #define PyBUF_FORMAT 0x0004
+ #define PyBUF_ND 0x0008
+ #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
+ #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
+ #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
+ #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
+ #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+
+#endif
+#if PY_MAJOR_VERSION < 3
+ #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
+#else
+ #define __Pyx_BUILTIN_MODULE_NAME "builtins"
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define Py_TPFLAGS_CHECKTYPES 0
+ #define Py_TPFLAGS_HAVE_INDEX 0
+#endif
+#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
+ #define Py_TPFLAGS_HAVE_NEWBUFFER 0
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define PyBaseString_Type PyUnicode_Type
+ #define PyString_Type PyBytes_Type
+ #define PyInt_Type PyLong_Type
+ #define PyInt_Check(op) PyLong_Check(op)
+ #define PyInt_CheckExact(op) PyLong_CheckExact(op)
+ #define PyInt_FromString PyLong_FromString
+ #define PyInt_FromUnicode PyLong_FromUnicode
+ #define PyInt_FromLong PyLong_FromLong
+ #define PyInt_FromSize_t PyLong_FromSize_t
+ #define PyInt_FromSsize_t PyLong_FromSsize_t
+ #define PyInt_AsLong PyLong_AsLong
+ #define PyInt_AS_LONG PyLong_AS_LONG
+ #define PyInt_AsSsize_t PyLong_AsSsize_t
+ #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
+ #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+ #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
+#else
+ #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
+ #define PyBytes_Type PyString_Type
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
+#endif
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+ #ifndef __stdcall
+ #define __stdcall
+ #endif
+ #ifndef __cdecl
+ #define __cdecl
+ #endif
+#else
+ #define _USE_MATH_DEFINES
+#endif
+#ifdef __cplusplus
+#define __PYX_EXTERN_C extern "C"
+#else
+#define __PYX_EXTERN_C extern
+#endif
+#include <math.h>
+#define __PYX_HAVE_API__purple
+#include "libpurple/purple.h"
+#include "c_purple.h"
+#include "glib.h"
+#include "libpurple/blist.h"
+#include "libpurple/connection.h"
+#include "libpurple/log.h"
+#include "libpurple/proxy.h"
+#include "libpurple/status.h"
+#include "libpurple/account.h"
+#include "libpurple/prefs.h"
+#include "libpurple/accountopt.h"
+#include "libpurple/buddyicon.h"
+#include "libpurple/plugin.h"
+#include "libpurple/prpl.h"
+#include "time.h"
+#include "libpurple/conversation.h"
+#include "libpurple/core.h"
+#include "libpurple/debug.h"
+#include "libpurple/eventloop.h"
+#include "libpurple/ft.h"
+#include "libpurple/idle.h"
+#include "libpurple/notify.h"
+#include "libpurple/pounce.h"
+#include "libpurple/privacy.h"
+#include "libpurple/request.h"
+#include "libpurple/roomlist.h"
+#include "libpurple/server.h"
+#include "libpurple/signals.h"
+#include "libpurple/value.h"
+#include "libpurple/savedstatuses.h"
+#include "libpurple/xmlnode.h"
+#include "libpurple/util.h"
+
+
+#ifdef __GNUC__
+#define INLINE __inline__
+#elif _WIN32
+#define INLINE __inline
+#else
+#define INLINE
+#endif
+
+typedef struct {PyObject **p; char *s; long n; char is_unicode; char intern; char is_identifier;} __Pyx_StringTabEntry; /*proto*/
+
+
+
+static int __pyx_skip_dispatch = 0;
+
+
+/* Type Conversion Predeclarations */
+
+#if PY_MAJOR_VERSION < 3
+#define __Pyx_PyBytes_FromString PyString_FromString
+#define __Pyx_PyBytes_AsString PyString_AsString
+#else
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_AsString PyBytes_AsString
+#endif
+
+#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
+static INLINE int __Pyx_PyObject_IsTrue(PyObject* x);
+static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x);
+static INLINE unsigned PY_LONG_LONG __pyx_PyInt_AsUnsignedLongLong(PyObject* x);
+static INLINE Py_ssize_t __pyx_PyIndex_AsSsize_t(PyObject* b);
+
+#define __pyx_PyInt_AsLong(x) (PyInt_CheckExact(x) ? PyInt_AS_LONG(x) : PyInt_AsLong(x))
+#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
+
+static INLINE unsigned char __pyx_PyInt_unsigned_char(PyObject* x);
+static INLINE unsigned short __pyx_PyInt_unsigned_short(PyObject* x);
+static INLINE char __pyx_PyInt_char(PyObject* x);
+static INLINE short __pyx_PyInt_short(PyObject* x);
+static INLINE int __pyx_PyInt_int(PyObject* x);
+static INLINE long __pyx_PyInt_long(PyObject* x);
+static INLINE signed char __pyx_PyInt_signed_char(PyObject* x);
+static INLINE signed short __pyx_PyInt_signed_short(PyObject* x);
+static INLINE signed int __pyx_PyInt_signed_int(PyObject* x);
+static INLINE signed long __pyx_PyInt_signed_long(PyObject* x);
+static INLINE long double __pyx_PyInt_long_double(PyObject* x);
+#ifdef __GNUC__
+/* Test for GCC > 2.95 */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
+#define likely(x) __builtin_expect(!!(x), 1)
+#define unlikely(x) __builtin_expect(!!(x), 0)
+#else /* __GNUC__ > 2 ... */
+#define likely(x) (x)
+#define unlikely(x) (x)
+#endif /* __GNUC__ > 2 ... */
+#else /* __GNUC__ */
+#define likely(x) (x)
+#define unlikely(x) (x)
+#endif /* __GNUC__ */
+
+static PyObject *__pyx_m;
+static PyObject *__pyx_b;
+static PyObject *__pyx_empty_tuple;
+static int __pyx_lineno;
+static int __pyx_clineno = 0;
+static const char * __pyx_cfilenm= __FILE__;
+static const char *__pyx_filename;
+static const char **__pyx_f;
+
+static INLINE PyObject *__Pyx_GetItemInt(PyObject *o, Py_ssize_t i, int is_unsigned) {
+ PyObject *r;
+ if (PyList_CheckExact(o) && 0 <= i && i < PyList_GET_SIZE(o)) {
+ r = PyList_GET_ITEM(o, i);
+ Py_INCREF(r);
+ }
+ else if (PyTuple_CheckExact(o) && 0 <= i && i < PyTuple_GET_SIZE(o)) {
+ r = PyTuple_GET_ITEM(o, i);
+ Py_INCREF(r);
+ }
+ else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0) || !is_unsigned))
+ r = PySequence_GetItem(o, i);
+ else {
+ 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);
+ if (!j)
+ return 0;
+ r = PyObject_GetItem(o, j);
+ Py_DECREF(j);
+ }
+ return r;
+}
+
+static void __Pyx_RaiseDoubleKeywordsError(
+ const char* func_name, PyObject* kw_name); /*proto*/
+
+static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
+ Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
+
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
+
+static INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict,
+ const char* function_name, int kw_allowed); /*proto*/
+
+static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
+ const char *name, int exact); /*proto*/
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
+
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+
+static INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
+ if (likely(PyList_CheckExact(L))) {
+ if (PyList_Append(L, x) < 0) return NULL;
+ Py_INCREF(Py_None);
+ return Py_None; // this is just to have an accurate signature
+ }
+ else {
+ return PyObject_CallMethod(L, "append", "(O)", x);
+ }
+}
+
+static void __Pyx_WriteUnraisable(const char *name); /*proto*/
+
+static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
+static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
+
+static void __Pyx_AddTraceback(const char *funcname); /*proto*/
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+
+/* Type declarations */
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":22
+ * cimport purple
+ *
+ * cdef class Buddy: # <<<<<<<<<<<<<<
+ * """
+ * Buddy class
+ */
+
+struct __pyx_obj_6purple_Buddy {
+ PyObject_HEAD
+ struct __pyx_vtabstruct_6purple_Buddy *__pyx_vtab;
+ PyObject *__account;
+ PyObject *__name;
+ PyObject *__exists;
+};
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":61
+ * include "util.pxd"
+ *
+ * cdef class Purple: # <<<<<<<<<<<<<<
+ * """ Purple class.
+ *
+ */
+
+struct __pyx_obj_6purple_Purple {
+ PyObject_HEAD
+ struct __pyx_vtabstruct_6purple_Purple *__pyx_vtab;
+};
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":56
+ * USE_ENVVAR = property(get_USE_ENVVAR)
+ *
+ * cdef class ProxyInfo: # <<<<<<<<<<<<<<
+ *
+ * cdef proxy.PurpleProxyInfo *c_proxyinfo
+ */
+
+struct __pyx_obj_6purple_ProxyInfo {
+ PyObject_HEAD
+ PurpleProxyInfo *c_proxyinfo;
+ PyObject *types;
+};
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":22
+ * cimport purple
+ *
+ * cdef class Protocol: # <<<<<<<<<<<<<<
+ * """
+ * Protocol class
+ */
+
+struct __pyx_obj_6purple_Protocol {
+ PyObject_HEAD
+ struct __pyx_vtabstruct_6purple_Protocol *__pyx_vtab;
+ PyObject *__id;
+ PyObject *__exists;
+};
+
+struct __pyx_obj_6purple_ProxyInfoType {
+ PyObject_HEAD
+ PurpleProxyType c_type;
+};
+
+struct __pyx_obj_6purple_Conversation {
+ PyObject_HEAD
+ struct __pyx_vtabstruct_6purple_Conversation *__pyx_vtab;
+ PyObject *__account;
+ PyObject *__name;
+ PyObject *__type;
+ PyObject *__exists;
+};
+
+struct __pyx_obj_6purple_Account {
+ PyObject_HEAD
+ struct __pyx_vtabstruct_6purple_Account *__pyx_vtab;
+ PyObject *__username;
+ PyObject *__protocol;
+ PyObject *__core;
+ PyObject *__exists;
+};
+
+
+struct __pyx_vtabstruct_6purple_Protocol {
+ PurplePlugin *(*_get_structure)(struct __pyx_obj_6purple_Protocol *);
+};
+static struct __pyx_vtabstruct_6purple_Protocol *__pyx_vtabptr_6purple_Protocol;
+
+
+struct __pyx_vtabstruct_6purple_Buddy {
+ PurpleBuddy *(*_get_structure)(struct __pyx_obj_6purple_Buddy *);
+};
+static struct __pyx_vtabstruct_6purple_Buddy *__pyx_vtabptr_6purple_Buddy;
+
+
+struct __pyx_vtabstruct_6purple_Conversation {
+ PurpleConversation *(*_get_structure)(struct __pyx_obj_6purple_Conversation *);
+};
+static struct __pyx_vtabstruct_6purple_Conversation *__pyx_vtabptr_6purple_Conversation;
+
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":61
+ * include "util.pxd"
+ *
+ * cdef class Purple: # <<<<<<<<<<<<<<
+ * """ Purple class.
+ *
+ */
+
+struct __pyx_vtabstruct_6purple_Purple {
+ void (*__core_ui_ops_ui_prefs_init)(struct __pyx_obj_6purple_Purple *);
+ void (*__core_ui_ops_debug_init)(struct __pyx_obj_6purple_Purple *);
+ void (*__core_ui_ops_ui_init)(struct __pyx_obj_6purple_Purple *);
+ void (*__core_ui_ops_quit)(struct __pyx_obj_6purple_Purple *);
+ GHashTable *(*__core_ui_ops_get_ui_info)(struct __pyx_obj_6purple_Purple *);
+};
+static struct __pyx_vtabstruct_6purple_Purple *__pyx_vtabptr_6purple_Purple;
+
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":22
+ * cimport purple
+ *
+ * cdef class Account: # <<<<<<<<<<<<<<
+ * """
+ * Account class
+ */
+
+struct __pyx_vtabstruct_6purple_Account {
+ PurpleAccount *(*_get_structure)(struct __pyx_obj_6purple_Account *);
+};
+static struct __pyx_vtabstruct_6purple_Account *__pyx_vtabptr_6purple_Account;
+/* Module declarations from glib */
+
+/* Module declarations from account */
+
+/* Module declarations from prefs */
+
+/* Module declarations from accountopt */
+
+/* Module declarations from buddyicon */
+
+/* Module declarations from blist */
+
+/* Module declarations from prpl */
+
+/* Module declarations from plugin */
+
+/* Module declarations from connection */
+
+/* Module declarations from conversation */
+
+/* Module declarations from core */
+
+/* Module declarations from debug */
+
+/* Module declarations from eventloop */
+
+/* Module declarations from ft */
+
+/* Module declarations from idle */
+
+/* Module declarations from notify */
+
+/* Module declarations from pounce */
+
+/* Module declarations from privacy */
+
+/* Module declarations from proxy */
+
+/* Module declarations from request */
+
+/* Module declarations from roomlist */
+
+/* Module declarations from server */
+
+/* Module declarations from signals */
+
+/* Module declarations from value */
+
+/* Module declarations from status */
+
+/* Module declarations from savedstatuses */
+
+/* Module declarations from xmlnode */
+
+/* Module declarations from util */
+
+/* Module declarations from purple */
+
+static PyTypeObject *__pyx_ptype_6purple_Purple = 0;
+static PyTypeObject *__pyx_ptype_6purple_Protocol = 0;
+static PyTypeObject *__pyx_ptype_6purple_ProxyInfoType = 0;
+static PyTypeObject *__pyx_ptype_6purple_ProxyInfo = 0;
+static PyTypeObject *__pyx_ptype_6purple_Account = 0;
+static PyTypeObject *__pyx_ptype_6purple_Buddy = 0;
+static PyTypeObject *__pyx_ptype_6purple_Conversation = 0;
+static GHashTable *__pyx_v_6purple_c_ui_info;
+static char *__pyx_v_6purple_c_ui_name;
+static char *__pyx_v_6purple_c_ui_version;
+static char *__pyx_v_6purple_c_ui_website;
+static char *__pyx_v_6purple_c_ui_dev_website;
+static PurpleAccountUiOps __pyx_v_6purple_c_account_ui_ops;
+static PurpleBlistUiOps __pyx_v_6purple_c_blist_ui_ops;
+static PurpleConnectionUiOps __pyx_v_6purple_c_conn_ui_ops;
+static PurpleConversationUiOps __pyx_v_6purple_c_conv_ui_ops;
+static PurpleCoreUiOps __pyx_v_6purple_c_core_ui_ops;
+static PurpleEventLoopUiOps __pyx_v_6purple_c_eventloop_ui_ops;
+static PurpleNotifyUiOps __pyx_v_6purple_c_notify_ui_ops;
+static PurpleRequestUiOps __pyx_v_6purple_c_request_ui_ops;
+static PurpleAccountRequestAuthorizationCb __pyx_v_6purple_c_request_authorize_authorize_cb;
+static PurpleAccountRequestAuthorizationCb __pyx_v_6purple_c_request_authorize_deny_cb;
+static void *__pyx_v_6purple_c_request_authorize_user_data;
+static void __pyx_f_6purple_notify_added(PurpleAccount *, const char *, const char *, const char *, const char *); /*proto*/
+static void __pyx_f_6purple_status_changed(PurpleAccount *, PurpleStatus *); /*proto*/
+static void __pyx_f_6purple_request_add(PurpleAccount *, const char *, const char *, const char *, const char *); /*proto*/
+static void *__pyx_f_6purple_request_authorize(PurpleAccount *, const char *, const char *, const char *, const char *, gboolean, PurpleAccountRequestAuthorizationCb, PurpleAccountRequestAuthorizationCb, void *); /*proto*/
+static void __pyx_f_6purple_close_account_request(void *); /*proto*/
+static void __pyx_f_6purple___group_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
+static void __pyx_f_6purple___contact_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
+static void __pyx_f_6purple___buddy_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
+static void __pyx_f_6purple___chat_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
+static void __pyx_f_6purple___other_node_cb(PurpleBlistNode *, PyObject *); /*proto*/
+static void __pyx_f_6purple_new_list(PurpleBuddyList *); /*proto*/
+static void __pyx_f_6purple_new_node(PurpleBlistNode *); /*proto*/
+static void __pyx_f_6purple_show(PurpleBuddyList *); /*proto*/
+static void __pyx_f_6purple_update(PurpleBuddyList *, PurpleBlistNode *); /*proto*/
+static void __pyx_f_6purple_remove(PurpleBuddyList *, PurpleBlistNode *); /*proto*/
+static void __pyx_f_6purple_destroy(PurpleBuddyList *); /*proto*/
+static void __pyx_f_6purple_set_visible(PurpleBuddyList *, gboolean); /*proto*/
+static void __pyx_f_6purple_request_add_buddy(PurpleAccount *, const char *, const char *, const char *); /*proto*/
+static void __pyx_f_6purple_request_add_chat(PurpleAccount *, PurpleGroup *, const char *, const char *); /*proto*/
+static void __pyx_f_6purple_request_add_group(void); /*proto*/
+static void __pyx_f_6purple_connect_progress(PurpleConnection *, const char *, size_t, size_t); /*proto*/
+static void __pyx_f_6purple_connected(PurpleConnection *); /*proto*/
+static void __pyx_f_6purple_disconnected(PurpleConnection *); /*proto*/
+static void __pyx_f_6purple_notice(PurpleConnection *, const char *); /*proto*/
+static void __pyx_f_6purple_report_disconnect(PurpleConnection *, const char *); /*proto*/
+static void __pyx_f_6purple_network_connected(void); /*proto*/
+static void __pyx_f_6purple_network_disconnected(void); /*proto*/
+static void __pyx_f_6purple_report_disconnect_reason(PurpleConnection *, PurpleConnectionError, const char *); /*proto*/
+static void __pyx_f_6purple_create_conversation(PurpleConversation *); /*proto*/
+static void __pyx_f_6purple_destroy_conversation(PurpleConversation *); /*proto*/
+static void __pyx_f_6purple_write_chat(PurpleConversation *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
+static void __pyx_f_6purple_write_im(PurpleConversation *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
+static void __pyx_f_6purple_write_conv(PurpleConversation *, const char *, const char *, const char *, PurpleMessageFlags, time_t); /*proto*/
+static void __pyx_f_6purple_chat_add_users(PurpleConversation *, GList *, gboolean); /*proto*/
+static void __pyx_f_6purple_chat_rename_user(PurpleConversation *, const char *, const char *, const char *); /*proto*/
+static void __pyx_f_6purple_chat_remove_users(PurpleConversation *, GList *); /*proto*/
+static void __pyx_f_6purple_chat_update_user(PurpleConversation *, const char *); /*proto*/
+static void __pyx_f_6purple_present(PurpleConversation *); /*proto*/
+static gboolean __pyx_f_6purple_has_focus(PurpleConversation *); /*proto*/
+static gboolean __pyx_f_6purple_custom_smiley_add(PurpleConversation *, const char *, gboolean); /*proto*/
+static void __pyx_f_6purple_custom_smiley_write(PurpleConversation *, const char *, const guchar *, gsize); /*proto*/
+static void __pyx_f_6purple_custom_smiley_close(PurpleConversation *, const char *); /*proto*/
+static void __pyx_f_6purple_send_confirm(PurpleConversation *, const char *); /*proto*/
+static void *__pyx_f_6purple_notify_message(PurpleNotifyMsgType, const char *, const char *, const char *); /*proto*/
+static void *__pyx_f_6purple_notify_email(PurpleConnection *, const char *, const char *, const char *, const char *); /*proto*/
+static void *__pyx_f_6purple_notify_emails(PurpleConnection *, size_t, gboolean, const char **, const char **, const char **, const char **); /*proto*/
+static void *__pyx_f_6purple_notify_formatted(const char *, const char *, const char *, const char *); /*proto*/
+static void *__pyx_f_6purple_notify_searchresults(PurpleConnection *, const char *, const char *, const char *, PurpleNotifySearchResults *, gpointer); /*proto*/
+static void __pyx_f_6purple_notify_searchresults_new_rows(PurpleConnection *, PurpleNotifySearchResults *, void *); /*proto*/
+static void *__pyx_f_6purple_notify_userinfo(PurpleConnection *, const char *, PurpleNotifyUserInfo *); /*proto*/
+static void *__pyx_f_6purple_notify_uri(const char *); /*proto*/
+static void __pyx_f_6purple_close_notify(PurpleNotifyType, void *); /*proto*/
+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*/
+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*/
+static void *__pyx_f_6purple_request_action(const char *, const char *, const char *, int, PurpleAccount *, const char *, PurpleConversation *, void *, size_t, va_list); /*proto*/
+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*/
+static void *__pyx_f_6purple_request_file(const char *, const char *, gboolean, GCallback, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
+static void __pyx_f_6purple_close_request(PurpleRequestType, void *); /*proto*/
+static void *__pyx_f_6purple_request_folder(const char *, const char *, GCallback, GCallback, PurpleAccount *, const char *, PurpleConversation *, void *); /*proto*/
+static void __pyx_f_6purple_signal_signed_on_cb(PurpleConnection *, gpointer); /*proto*/
+static void __pyx_f_6purple_signal_signed_off_cb(PurpleConnection *, gpointer); /*proto*/
+static void __pyx_f_6purple_signal_connection_error_cb(PurpleConnection *, PurpleConnectionError, const gchar *); /*proto*/
+static void __pyx_f_6purple_signal_buddy_signed_on_cb(PurpleBuddy *); /*proto*/
+static void __pyx_f_6purple_signal_buddy_signed_off_cb(PurpleBuddy *); /*proto*/
+static gboolean __pyx_f_6purple_signal_receiving_im_msg_cb(PurpleAccount *, char **, char **, PurpleConversation *, PurpleMessageFlags *); /*proto*/
+static void __pyx_f_6purple_jabber_receiving_xmlnode_cb(PurpleConnection *, xmlnode **, gpointer); /*proto*/
+
+
+/* Implementation of purple */
+static PyObject *__pyx_int_0;
+static PyObject *__pyx_int_1;
+static PyObject *__pyx_int_2;
+static PyObject *__pyx_int_3;
+static PyObject *__pyx_int_4;
+static PyObject *__pyx_int_5;
+static PyObject *__pyx_int_6;
+static PyObject *__pyx_int_7;
+static PyObject *__pyx_int_8;
+static PyObject *__pyx_int_9;
+static PyObject *__pyx_int_10;
+static PyObject *__pyx_int_11;
+static PyObject *__pyx_int_12;
+static PyObject *__pyx_int_13;
+static PyObject *__pyx_int_14;
+static PyObject *__pyx_int_15;
+static PyObject *__pyx_int_16;
+static char __pyx_k___init__[] = "__init__";
+static PyObject *__pyx_kp___init__;
+static char __pyx_k_destroy[] = "destroy";
+static PyObject *__pyx_kp_destroy;
+static char __pyx_k___get_ui_name[] = "__get_ui_name";
+static PyObject *__pyx_kp___get_ui_name;
+static char __pyx_k_ui_name[] = "ui_name";
+static PyObject *__pyx_kp_ui_name;
+static char __pyx_k_1[] = "__glib_iteration_when_idle";
+static PyObject *__pyx_kp_1;
+static char __pyx_k_purple_init[] = "purple_init";
+static PyObject *__pyx_kp_purple_init;
+static char __pyx_k_add_callback[] = "add_callback";
+static PyObject *__pyx_kp_add_callback;
+static char __pyx_k_signal_connect[] = "signal_connect";
+static PyObject *__pyx_kp_signal_connect;
+static char __pyx_k_accounts_get_all[] = "accounts_get_all";
+static PyObject *__pyx_kp_accounts_get_all;
+static char __pyx_k_2[] = "accounts_get_all_active";
+static PyObject *__pyx_kp_2;
+static char __pyx_k_protocols_get_all[] = "protocols_get_all";
+static PyObject *__pyx_kp_protocols_get_all;
+static char __pyx_k___get_exists[] = "__get_exists";
+static PyObject *__pyx_kp___get_exists;
+static char __pyx_k_exists[] = "exists";
+static PyObject *__pyx_kp_exists;
+static char __pyx_k___get_id[] = "__get_id";
+static PyObject *__pyx_kp___get_id;
+static char __pyx_k_id[] = "id";
+static PyObject *__pyx_kp_id;
+static char __pyx_k___get_name[] = "__get_name";
+static PyObject *__pyx_kp___get_name;
+static char __pyx_k_name[] = "name";
+static PyObject *__pyx_kp_name;
+static char __pyx_k_3[] = "__get_options_labels";
+static PyObject *__pyx_kp_3;
+static char __pyx_k_options_labels[] = "options_labels";
+static PyObject *__pyx_kp_options_labels;
+static char __pyx_k_4[] = "__get_options_values";
+static PyObject *__pyx_kp_4;
+static char __pyx_k_options_values[] = "options_values";
+static PyObject *__pyx_kp_options_values;
+static char __pyx_k_get_NONE[] = "get_NONE";
+static PyObject *__pyx_kp_get_NONE;
+static char __pyx_k_NONE[] = "NONE";
+static PyObject *__pyx_kp_NONE;
+static char __pyx_k_get_USE_GLOBAL[] = "get_USE_GLOBAL";
+static PyObject *__pyx_kp_get_USE_GLOBAL;
+static char __pyx_k_USE_GLOBAL[] = "USE_GLOBAL";
+static PyObject *__pyx_kp_USE_GLOBAL;
+static char __pyx_k_get_HTTP[] = "get_HTTP";
+static PyObject *__pyx_kp_get_HTTP;
+static char __pyx_k_HTTP[] = "HTTP";
+static PyObject *__pyx_kp_HTTP;
+static char __pyx_k_5[] = "get_SOCKS4";
+static PyObject *__pyx_kp_5;
+static char __pyx_k_6[] = "get_SOCKS5";
+static PyObject *__pyx_kp_6;
+static char __pyx_k_get_USE_ENVVAR[] = "get_USE_ENVVAR";
+static PyObject *__pyx_kp_get_USE_ENVVAR;
+static char __pyx_k_USE_ENVVAR[] = "USE_ENVVAR";
+static PyObject *__pyx_kp_USE_ENVVAR;
+static char __pyx_k_set_type[] = "set_type";
+static PyObject *__pyx_kp_set_type;
+static char __pyx_k_set_host[] = "set_host";
+static PyObject *__pyx_kp_set_host;
+static char __pyx_k_set_port[] = "set_port";
+static PyObject *__pyx_kp_set_port;
+static char __pyx_k_set_username[] = "set_username";
+static PyObject *__pyx_kp_set_username;
+static char __pyx_k_set_password[] = "set_password";
+static PyObject *__pyx_kp_set_password;
+static char __pyx_k_get_types[] = "get_types";
+static PyObject *__pyx_kp_get_types;
+static char __pyx_k_set_info[] = "set_info";
+static PyObject *__pyx_kp_set_info;
+static char __pyx_k___is_connected[] = "__is_connected";
+static PyObject *__pyx_kp___is_connected;
+static char __pyx_k_is_connected[] = "is_connected";
+static PyObject *__pyx_kp_is_connected;
+static char __pyx_k___is_connecting[] = "__is_connecting";
+static PyObject *__pyx_kp___is_connecting;
+static char __pyx_k_is_connecting[] = "is_connecting";
+static PyObject *__pyx_kp_is_connecting;
+static char __pyx_k___is_disconnected[] = "__is_disconnected";
+static PyObject *__pyx_kp___is_disconnected;
+static char __pyx_k_is_disconnected[] = "is_disconnected";
+static PyObject *__pyx_kp_is_disconnected;
+static char __pyx_k___get_core[] = "__get_core";
+static PyObject *__pyx_kp___get_core;
+static char __pyx_k_core[] = "core";
+static PyObject *__pyx_kp_core;
+static char __pyx_k___get_username[] = "__get_username";
+static PyObject *__pyx_kp___get_username;
+static char __pyx_k_username[] = "username";
+static PyObject *__pyx_kp_username;
+static char __pyx_k___get_protocol[] = "__get_protocol";
+static PyObject *__pyx_kp___get_protocol;
+static char __pyx_k_protocol[] = "protocol";
+static PyObject *__pyx_kp_protocol;
+static char __pyx_k_7[] = "_get_protocol_options";
+static PyObject *__pyx_kp_7;
+static char __pyx_k_protocol_options[] = "protocol_options";
+static PyObject *__pyx_kp_protocol_options;
+static char __pyx_k___get_password[] = "__get_password";
+static PyObject *__pyx_kp___get_password;
+static char __pyx_k_password[] = "password";
+static PyObject *__pyx_kp_password;
+static char __pyx_k___get_alias[] = "__get_alias";
+static PyObject *__pyx_kp___get_alias;
+static char __pyx_k_alias[] = "alias";
+static PyObject *__pyx_kp_alias;
+static char __pyx_k___get_user_info[] = "__get_user_info";
+static PyObject *__pyx_kp___get_user_info;
+static char __pyx_k_user_info[] = "user_info";
+static PyObject *__pyx_kp_user_info;
+static char __pyx_k_8[] = "__get_remember_password";
+static PyObject *__pyx_kp_8;
+static char __pyx_k_remember_password[] = "remember_password";
+static PyObject *__pyx_kp_remember_password;
+static char __pyx_k___get_enabled[] = "__get_enabled";
+static PyObject *__pyx_kp___get_enabled;
+static char __pyx_k_enabled[] = "enabled";
+static PyObject *__pyx_kp_enabled;
+static char __pyx_k___get_status_types[] = "__get_status_types";
+static PyObject *__pyx_kp___get_status_types;
+static char __pyx_k_status_types[] = "status_types";
+static PyObject *__pyx_kp_status_types;
+static char __pyx_k___get_active_status[] = "__get_active_status";
+static PyObject *__pyx_kp___get_active_status;
+static char __pyx_k_active_status[] = "active_status";
+static PyObject *__pyx_kp_active_status;
+static char __pyx_k_set_protocol[] = "set_protocol";
+static PyObject *__pyx_kp_set_protocol;
+static char __pyx_k_9[] = "set_protocol_options";
+static PyObject *__pyx_kp_9;
+static char __pyx_k_set_alias[] = "set_alias";
+static PyObject *__pyx_kp_set_alias;
+static char __pyx_k_set_user_info[] = "set_user_info";
+static PyObject *__pyx_kp_set_user_info;
+static char __pyx_k_10[] = "set_remember_password";
+static PyObject *__pyx_kp_10;
+static char __pyx_k_set_enabled[] = "set_enabled";
+static PyObject *__pyx_kp_set_enabled;
+static char __pyx_k_new[] = "new";
+static PyObject *__pyx_kp_new;
+static char __pyx_k_remove[] = "remove";
+static PyObject *__pyx_kp_remove;
+static char __pyx_k_connect[] = "connect";
+static PyObject *__pyx_kp_connect;
+static char __pyx_k_disconnect[] = "disconnect";
+static PyObject *__pyx_kp_disconnect;
+static char __pyx_k_add_buddy[] = "add_buddy";
+static PyObject *__pyx_kp_add_buddy;
+static char __pyx_k_remove_buddy[] = "remove_buddy";
+static PyObject *__pyx_kp_remove_buddy;
+static char __pyx_k_get_buddies_online[] = "get_buddies_online";
+static PyObject *__pyx_kp_get_buddies_online;
+static char __pyx_k_request_add_buddy[] = "request_add_buddy";
+static PyObject *__pyx_kp_request_add_buddy;
+static char __pyx_k_set_active_status[] = "set_active_status";
+static PyObject *__pyx_kp_set_active_status;
+static char __pyx_k_set_status_message[] = "set_status_message";
+static PyObject *__pyx_kp_set_status_message;
+static char __pyx_k___get_account[] = "__get_account";
+static PyObject *__pyx_kp___get_account;
+static char __pyx_k_account[] = "account";
+static PyObject *__pyx_kp_account;
+static char __pyx_k___get_group[] = "__get_group";
+static PyObject *__pyx_kp___get_group;
+static char __pyx_k_group[] = "group";
+static PyObject *__pyx_kp_group;
+static char __pyx_k___get_server_alias[] = "__get_server_alias";
+static PyObject *__pyx_kp___get_server_alias;
+static char __pyx_k_server_alias[] = "server_alias";
+static PyObject *__pyx_kp_server_alias;
+static char __pyx_k___get_contact_alias[] = "__get_contact_alias";
+static PyObject *__pyx_kp___get_contact_alias;
+static char __pyx_k_contact_alias[] = "contact_alias";
+static PyObject *__pyx_kp_contact_alias;
+static char __pyx_k___get_local_alias[] = "__get_local_alias";
+static PyObject *__pyx_kp___get_local_alias;
+static char __pyx_k_local_alias[] = "local_alias";
+static PyObject *__pyx_kp_local_alias;
+static char __pyx_k___get_available[] = "__get_available";
+static PyObject *__pyx_kp___get_available;
+static char __pyx_k_available[] = "available";
+static PyObject *__pyx_kp_available;
+static char __pyx_k___get_online[] = "__get_online";
+static PyObject *__pyx_kp___get_online;
+static char __pyx_k_online[] = "online";
+static PyObject *__pyx_kp_online;
+static char __pyx_k___get_idle[] = "__get_idle";
+static PyObject *__pyx_kp___get_idle;
+static char __pyx_k_idle[] = "idle";
+static PyObject *__pyx_kp_idle;
+static char __pyx_k_set_group[] = "set_group";
+static PyObject *__pyx_kp_set_group;
+static char __pyx_k_set_ui_ops[] = "set_ui_ops";
+static PyObject *__pyx_kp_set_ui_ops;
+static char __pyx_k_im_send[] = "im_send";
+static PyObject *__pyx_kp_im_send;
+static char __pyx_k_message[] = "message";
+static PyObject *__pyx_kp_message;
+static char __pyx_k_ui_version[] = "ui_version";
+static PyObject *__pyx_kp_ui_version;
+static char __pyx_k_ui_website[] = "ui_website";
+static PyObject *__pyx_kp_ui_website;
+static char __pyx_k_ui_dev_website[] = "ui_dev_website";
+static PyObject *__pyx_kp_ui_dev_website;
+static char __pyx_k_debug_enabled[] = "debug_enabled";
+static PyObject *__pyx_kp_debug_enabled;
+static char __pyx_k_default_path[] = "default_path";
+static PyObject *__pyx_kp_default_path;
+static char __pyx_k_type[] = "type";
+static PyObject *__pyx_kp_type;
+static char __pyx_k_callback[] = "callback";
+static PyObject *__pyx_kp_callback;
+static char __pyx_k_cb[] = "cb";
+static PyObject *__pyx_kp_cb;
+static char __pyx_k_host[] = "host";
+static PyObject *__pyx_kp_host;
+static char __pyx_k_port[] = "port";
+static PyObject *__pyx_kp_port;
+static char __pyx_k_acc[] = "acc";
+static PyObject *__pyx_kp_acc;
+static char __pyx_k_info[] = "info";
+static PyObject *__pyx_kp_info;
+static char __pyx_k_po[] = "po";
+static PyObject *__pyx_kp_po;
+static char __pyx_k_value[] = "value";
+static PyObject *__pyx_kp_value;
+static char __pyx_k_buddy_username[] = "buddy_username";
+static PyObject *__pyx_kp_buddy_username;
+static char __pyx_k_buddy_alias[] = "buddy_alias";
+static PyObject *__pyx_kp_buddy_alias;
+static char __pyx_k_msg[] = "msg";
+static PyObject *__pyx_kp_msg;
+static char __pyx_k_cbs[] = "cbs";
+static PyObject *__pyx_kp_cbs;
+static char __pyx_k_ecore[] = "ecore";
+static PyObject *__pyx_kp_ecore;
+static char __pyx_k_account_cbs[] = "account_cbs";
+static PyObject *__pyx_kp_account_cbs;
+static char __pyx_k_blist_cbs[] = "blist_cbs";
+static PyObject *__pyx_kp_blist_cbs;
+static char __pyx_k_connection_cbs[] = "connection_cbs";
+static PyObject *__pyx_kp_connection_cbs;
+static char __pyx_k_conversation_cbs[] = "conversation_cbs";
+static PyObject *__pyx_kp_conversation_cbs;
+static char __pyx_k_notify_cbs[] = "notify_cbs";
+static PyObject *__pyx_kp_notify_cbs;
+static char __pyx_k_request_cbs[] = "request_cbs";
+static PyObject *__pyx_kp_request_cbs;
+static char __pyx_k_signal_cbs[] = "signal_cbs";
+static PyObject *__pyx_kp_signal_cbs;
+static char __pyx_k_property[] = "property";
+static PyObject *__pyx_kp_property;
+static char __pyx_k_has_key[] = "has_key";
+static PyObject *__pyx_kp_has_key;
+static char __pyx_k_call_authorize_cb[] = "call_authorize_cb";
+static PyObject *__pyx_kp_call_authorize_cb;
+static char __pyx_k_call_deny_cb[] = "call_deny_cb";
+static PyObject *__pyx_kp_call_deny_cb;
+static char __pyx_k_54[] = "show";
+static PyObject *__pyx_kp_54;
+static char __pyx_k_55[] = "show";
+static PyObject *__pyx_kp_55;
+static char __pyx_k_60[] = "update";
+static PyObject *__pyx_kp_60;
+static char __pyx_k_61[] = "update";
+static PyObject *__pyx_kp_61;
+static char __pyx_k_62[] = "update";
+static PyObject *__pyx_kp_62;
+static char __pyx_k_63[] = "update";
+static PyObject *__pyx_kp_63;
+static char __pyx_k_64[] = "update";
+static PyObject *__pyx_kp_64;
+static char __pyx_k_65[] = "update";
+static PyObject *__pyx_kp_65;
+static char __pyx_k_69[] = "remove";
+static PyObject *__pyx_kp_69;
+static char __pyx_k_70[] = "remove";
+static PyObject *__pyx_kp_70;
+static char __pyx_k_71[] = "remove";
+static PyObject *__pyx_kp_71;
+static char __pyx_k_72[] = "remove";
+static PyObject *__pyx_kp_72;
+static char __pyx_k_73[] = "remove";
+static PyObject *__pyx_kp_73;
+static char __pyx_k_74[] = "remove";
+static PyObject *__pyx_kp_74;
+static char __pyx_k_78[] = "destroy";
+static PyObject *__pyx_kp_78;
+static char __pyx_k_79[] = "destroy";
+static PyObject *__pyx_kp_79;
+static char __pyx_k_112[] = "connected";
+static PyObject *__pyx_kp_112;
+static char __pyx_k_113[] = "connected";
+static PyObject *__pyx_kp_113;
+static char __pyx_k_118[] = "disconnected";
+static PyObject *__pyx_kp_118;
+static char __pyx_k_119[] = "disconnected";
+static PyObject *__pyx_kp_119;
+static char __pyx_k_124[] = "notice";
+static PyObject *__pyx_kp_124;
+static char __pyx_k_125[] = "notice";
+static PyObject *__pyx_kp_125;
+static char __pyx_k_185[] = "SEND";
+static PyObject *__pyx_kp_185;
+static char __pyx_k_186[] = "RECV";
+static PyObject *__pyx_kp_186;
+static char __pyx_k_222[] = "present";
+static PyObject *__pyx_kp_222;
+static char __pyx_k_223[] = "present";
+static PyObject *__pyx_kp_223;
+static char __pyx_k_timer_add[] = "timer_add";
+static PyObject *__pyx_kp_timer_add;
+static char __pyx_k_c_ui_info[] = "c_ui_info";
+static PyObject *__pyx_kp_c_ui_info;
+static char __pyx_k_405[] = "account";
+static PyObject *__pyx_kp_405;
+static char __pyx_k_406[] = "blist";
+static PyObject *__pyx_kp_406;
+static char __pyx_k_407[] = "connection";
+static PyObject *__pyx_kp_407;
+static char __pyx_k_408[] = "conversation";
+static PyObject *__pyx_kp_408;
+static char __pyx_k_409[] = "notify";
+static PyObject *__pyx_kp_409;
+static char __pyx_k_410[] = "request";
+static PyObject *__pyx_kp_410;
+static char __pyx_k_append[] = "append";
+static PyObject *__pyx_kp_append;
+static char __pyx_k_427[] = "HTTP";
+static PyObject *__pyx_kp_427;
+static char __pyx_k_428[] = "USER_GLOBAL";
+static PyObject *__pyx_kp_428;
+static char __pyx_k_429[] = "USE_ENVVAR";
+static PyObject *__pyx_kp_429;
+static char __pyx_k_430[] = "SOCKS4";
+static PyObject *__pyx_kp_430;
+static char __pyx_k_431[] = "SOCKS5";
+static PyObject *__pyx_kp_431;
+static char __pyx_k_432[] = "NONE";
+static PyObject *__pyx_kp_432;
+static char __pyx_k_keys[] = "keys";
+static PyObject *__pyx_kp_keys;
+static char __pyx_k_433[] = "type";
+static PyObject *__pyx_kp_433;
+static char __pyx_k_434[] = "type";
+static PyObject *__pyx_kp_434;
+static char __pyx_k_435[] = "type";
+static PyObject *__pyx_kp_435;
+static char __pyx_k_436[] = "HTTP";
+static PyObject *__pyx_kp_436;
+static char __pyx_k_437[] = "host";
+static PyObject *__pyx_kp_437;
+static char __pyx_k_438[] = "host";
+static PyObject *__pyx_kp_438;
+static char __pyx_k_439[] = "host";
+static PyObject *__pyx_kp_439;
+static char __pyx_k_440[] = "port";
+static PyObject *__pyx_kp_440;
+static char __pyx_k_441[] = "port";
+static PyObject *__pyx_kp_441;
+static char __pyx_k_442[] = "port";
+static PyObject *__pyx_kp_442;
+static char __pyx_k_443[] = "username";
+static PyObject *__pyx_kp_443;
+static char __pyx_k_444[] = "username";
+static PyObject *__pyx_kp_444;
+static char __pyx_k_445[] = "username";
+static PyObject *__pyx_kp_445;
+static char __pyx_k_446[] = "password";
+static PyObject *__pyx_kp_446;
+static char __pyx_k_447[] = "password";
+static PyObject *__pyx_kp_447;
+static char __pyx_k_448[] = "password";
+static PyObject *__pyx_kp_448;
+static char __pyx_k_451[] = "type";
+static PyObject *__pyx_kp_451;
+static char __pyx_k_452[] = "name";
+static PyObject *__pyx_kp_452;
+static char __pyx_k_453[] = "message";
+static PyObject *__pyx_kp_453;
+static char __pyx_k_459[] = "type";
+static PyObject *__pyx_kp_459;
+static char __pyx_k_460[] = "name";
+static PyObject *__pyx_kp_460;
+static char __pyx_k_461[] = "message";
+static PyObject *__pyx_kp_461;
+static char __pyx_k_462[] = "UNKNOWN";
+static PyObject *__pyx_kp_462;
+static char __pyx_k_463[] = "IM";
+static PyObject *__pyx_kp_463;
+static char __pyx_k_464[] = "CHAT";
+static PyObject *__pyx_kp_464;
+static char __pyx_k_465[] = "MISC";
+static PyObject *__pyx_kp_465;
+static char __pyx_k_466[] = "ANY";
+static PyObject *__pyx_kp_466;
+static PyObject *__pyx_builtin_property;
+static PyObject *__pyx_kp_14;
+static PyObject *__pyx_kp_15;
+static char __pyx_k_11[] = "account";
+static char __pyx_k_12[] = "%s";
+static char __pyx_k_13[] = "notify-added\n";
+static char __pyx_k_14[] = "notify-added";
+static char __pyx_k_15[] = "notify-added";
+static PyObject *__pyx_kp_19;
+static PyObject *__pyx_kp_20;
+static char __pyx_k_16[] = "account";
+static char __pyx_k_17[] = "%s";
+static char __pyx_k_18[] = "status-changed\n";
+static char __pyx_k_19[] = "status-changed";
+static char __pyx_k_20[] = "status-changed";
+static PyObject *__pyx_kp_24;
+static PyObject *__pyx_kp_25;
+static char __pyx_k_21[] = "account";
+static char __pyx_k_22[] = "%s";
+static char __pyx_k_23[] = "request-add\n";
+static char __pyx_k_24[] = "request-add";
+static char __pyx_k_25[] = "request-add";
+static PyObject *__pyx_kp_29;
+static PyObject *__pyx_kp_30;
+static char __pyx_k_26[] = "account";
+static char __pyx_k_27[] = "%s";
+static char __pyx_k_28[] = "request-authorize\n";
+static char __pyx_k_29[] = "request-authorize";
+static char __pyx_k_30[] = "request-authorize";
+static PyObject *__pyx_kp_34;
+static PyObject *__pyx_kp_35;
+static char __pyx_k_31[] = "account";
+static char __pyx_k_32[] = "%s";
+static char __pyx_k_33[] = "close-account-request\n";
+static char __pyx_k_34[] = "close-account-request";
+static char __pyx_k_35[] = "close-account-request";
+static PyObject *__pyx_kp_39;
+static PyObject *__pyx_kp_40;
+static PyObject *__pyx_kp_41;
+static char __pyx_k_36[] = "blist";
+static char __pyx_k_37[] = "%s";
+static char __pyx_k_38[] = "new-list\n";
+static char __pyx_k_39[] = "new-list";
+static char __pyx_k_40[] = "new-list";
+static char __pyx_k_41[] = "new-list: TODO";
+static PyObject *__pyx_kp_45;
+static PyObject *__pyx_kp_46;
+static PyObject *__pyx_kp_47;
+static PyObject *__pyx_kp_48;
+static PyObject *__pyx_kp_49;
+static PyObject *__pyx_kp_50;
+static char __pyx_k_42[] = "blist";
+static char __pyx_k_43[] = "%s";
+static char __pyx_k_44[] = "new-node\n";
+static char __pyx_k_45[] = "new-node";
+static char __pyx_k_46[] = "new-node";
+static char __pyx_k_47[] = "new-node";
+static char __pyx_k_48[] = "new-node";
+static char __pyx_k_49[] = "new-node";
+static char __pyx_k_50[] = "new-node";
+static PyObject *__pyx_kp_56;
+static char __pyx_k_51[] = "blist";
+static char __pyx_k_52[] = "%s";
+static char __pyx_k_53[] = "show\n";
+static char __pyx_k_56[] = "show: TODO";
+static char __pyx_k_57[] = "blist";
+static char __pyx_k_58[] = "%s";
+static char __pyx_k_59[] = "update\n";
+static char __pyx_k_66[] = "blist";
+static char __pyx_k_67[] = "%s";
+static char __pyx_k_68[] = "remove\n";
+static PyObject *__pyx_kp_80;
+static char __pyx_k_75[] = "blist";
+static char __pyx_k_76[] = "%s";
+static char __pyx_k_77[] = "destroy\n";
+static char __pyx_k_80[] = "destroy: TODO";
+static PyObject *__pyx_kp_84;
+static PyObject *__pyx_kp_85;
+static PyObject *__pyx_kp_86;
+static char __pyx_k_81[] = "blist";
+static char __pyx_k_82[] = "%s";
+static char __pyx_k_83[] = "set-visible\n";
+static char __pyx_k_84[] = "set-visible";
+static char __pyx_k_85[] = "set-visible";
+static char __pyx_k_86[] = "set-visible: TODO";
+static PyObject *__pyx_kp_90;
+static PyObject *__pyx_kp_91;
+static char __pyx_k_87[] = "blist";
+static char __pyx_k_88[] = "%s";
+static char __pyx_k_89[] = "request-add-buddy\n";
+static char __pyx_k_90[] = "request-add-buddy";
+static char __pyx_k_91[] = "request-add-buddy";
+static PyObject *__pyx_kp_95;
+static PyObject *__pyx_kp_96;
+static PyObject *__pyx_kp_97;
+static char __pyx_k_92[] = "blist";
+static char __pyx_k_93[] = "%s";
+static char __pyx_k_94[] = "request-add-chat\n";
+static char __pyx_k_95[] = "request-add-chat";
+static char __pyx_k_96[] = "request-add-chat";
+static char __pyx_k_97[] = "request-add-chat: TODO";
+static PyObject *__pyx_kp_101;
+static PyObject *__pyx_kp_102;
+static PyObject *__pyx_kp_103;
+static char __pyx_k_98[] = "blist";
+static char __pyx_k_99[] = "%s";
+static char __pyx_k_100[] = "request-add-group\n";
+static char __pyx_k_101[] = "request-add-chat";
+static char __pyx_k_102[] = "request-add-chat";
+static char __pyx_k_103[] = "request-add-group: TODO";
+static PyObject *__pyx_kp_107;
+static PyObject *__pyx_kp_108;
+static char __pyx_k_104[] = "connection";
+static char __pyx_k_105[] = "%s";
+static char __pyx_k_106[] = "connect-progress\n";
+static char __pyx_k_107[] = "connect-progress";
+static char __pyx_k_108[] = "connect-progress";
+static PyObject *__pyx_kp_114;
+static char __pyx_k_109[] = "connection";
+static char __pyx_k_110[] = "%s";
+static char __pyx_k_111[] = "connected\n";
+static char __pyx_k_114[] = "connected: TODO";
+static PyObject *__pyx_kp_120;
+static char __pyx_k_115[] = "connection";
+static char __pyx_k_116[] = "%s";
+static char __pyx_k_117[] = "disconnected\n";
+static char __pyx_k_120[] = "disconnected: TODO";
+static PyObject *__pyx_kp_126;
+static char __pyx_k_121[] = "connection";
+static char __pyx_k_122[] = "%s";
+static char __pyx_k_123[] = "notice\n";
+static char __pyx_k_126[] = "notice: TODO";
+static PyObject *__pyx_kp_130;
+static PyObject *__pyx_kp_131;
+static char __pyx_k_127[] = "connection";
+static char __pyx_k_128[] = "%s";
+static char __pyx_k_129[] = "report-disconnect\n";
+static char __pyx_k_130[] = "report-disconnect";
+static char __pyx_k_131[] = "report-disconnect";
+static PyObject *__pyx_kp_135;
+static PyObject *__pyx_kp_136;
+static char __pyx_k_132[] = "connection";
+static char __pyx_k_133[] = "%s";
+static char __pyx_k_134[] = "network-connected\n";
+static char __pyx_k_135[] = "network-connected";
+static char __pyx_k_136[] = "network-connected";
+static PyObject *__pyx_kp_140;
+static PyObject *__pyx_kp_141;
+static char __pyx_k_137[] = "connection";
+static char __pyx_k_138[] = "%s";
+static char __pyx_k_139[] = "network-disconnected\n";
+static char __pyx_k_140[] = "network-disconnected";
+static char __pyx_k_141[] = "network-disconnected";
+static PyObject *__pyx_kp_145;
+static PyObject *__pyx_kp_146;
+static PyObject *__pyx_kp_147;
+static PyObject *__pyx_kp_148;
+static PyObject *__pyx_kp_149;
+static PyObject *__pyx_kp_150;
+static PyObject *__pyx_kp_151;
+static PyObject *__pyx_kp_152;
+static PyObject *__pyx_kp_153;
+static PyObject *__pyx_kp_154;
+static PyObject *__pyx_kp_155;
+static PyObject *__pyx_kp_156;
+static PyObject *__pyx_kp_157;
+static PyObject *__pyx_kp_158;
+static PyObject *__pyx_kp_159;
+static PyObject *__pyx_kp_160;
+static PyObject *__pyx_kp_161;
+static PyObject *__pyx_kp_162;
+static PyObject *__pyx_kp_163;
+static char __pyx_k_142[] = "connection";
+static char __pyx_k_143[] = "%s";
+static char __pyx_k_144[] = "report-disconnect-reason\n";
+static char __pyx_k_145[] = "Network error";
+static char __pyx_k_146[] = "Invalid username";
+static char __pyx_k_147[] = "Authentication failed";
+static char __pyx_k_148[] = "Authentication impossible";
+static char __pyx_k_149[] = "No SSL support";
+static char __pyx_k_150[] = "Encryption error";
+static char __pyx_k_151[] = "Name in use";
+static char __pyx_k_152[] = "Invalid settings";
+static char __pyx_k_153[] = "Certificate not provided";
+static char __pyx_k_154[] = "Certificate untrusted";
+static char __pyx_k_155[] = "Certificate expired";
+static char __pyx_k_156[] = "Certificate not activated";
+static char __pyx_k_157[] = "Certificate hostname mismatch";
+static char __pyx_k_158[] = "Certificate fingerprint mismatch";
+static char __pyx_k_159[] = "Certificate self signed";
+static char __pyx_k_160[] = "Certificate error (other)";
+static char __pyx_k_161[] = "Other error";
+static char __pyx_k_162[] = "report-disconnect-reason";
+static char __pyx_k_163[] = "report-disconnect-reason";
+static PyObject *__pyx_kp_167;
+static PyObject *__pyx_kp_168;
+static char __pyx_k_164[] = "conversation";
+static char __pyx_k_165[] = "%s";
+static char __pyx_k_166[] = "create-conversation\n";
+static char __pyx_k_167[] = "create-conversation";
+static char __pyx_k_168[] = "create-conversation";
+static PyObject *__pyx_kp_172;
+static PyObject *__pyx_kp_173;
+static PyObject *__pyx_kp_174;
+static char __pyx_k_169[] = "conversation";
+static char __pyx_k_170[] = "%s";
+static char __pyx_k_171[] = "destroy-conversation\n";
+static char __pyx_k_172[] = "destroy-conversation";
+static char __pyx_k_173[] = "destroy-conversation";
+static char __pyx_k_174[] = "destroy-conversation: TODO";
+static PyObject *__pyx_kp_178;
+static PyObject *__pyx_kp_179;
+static PyObject *__pyx_kp_180;
+static char __pyx_k_175[] = "conversation";
+static char __pyx_k_176[] = "%s";
+static char __pyx_k_177[] = "write-chat\n";
+static char __pyx_k_178[] = "write-chat";
+static char __pyx_k_179[] = "write-chat";
+static char __pyx_k_180[] = "write-chat: TODO";
+static PyObject *__pyx_kp_184;
+static PyObject *__pyx_kp_187;
+static PyObject *__pyx_kp_188;
+static char __pyx_k_181[] = "conversation";
+static char __pyx_k_182[] = "%s";
+static char __pyx_k_183[] = "write-im\n";
+static char __pyx_k_184[] = "utf-8";
+static char __pyx_k_187[] = "write-im";
+static char __pyx_k_188[] = "write-im";
+static PyObject *__pyx_kp_192;
+static PyObject *__pyx_kp_193;
+static PyObject *__pyx_kp_194;
+static char __pyx_k_189[] = "conversation";
+static char __pyx_k_190[] = "%s";
+static char __pyx_k_191[] = "write-conv\n";
+static char __pyx_k_192[] = "write-conv";
+static char __pyx_k_193[] = "write-conv";
+static char __pyx_k_194[] = "write-conv: TODO";
+static PyObject *__pyx_kp_198;
+static PyObject *__pyx_kp_199;
+static PyObject *__pyx_kp_200;
+static char __pyx_k_195[] = "conversation";
+static char __pyx_k_196[] = "%s";
+static char __pyx_k_197[] = "chat-add-users\n";
+static char __pyx_k_198[] = "chat-add-users";
+static char __pyx_k_199[] = "chat-add-users";
+static char __pyx_k_200[] = "chat-add-users: TODO";
+static PyObject *__pyx_kp_204;
+static PyObject *__pyx_kp_205;
+static PyObject *__pyx_kp_206;
+static char __pyx_k_201[] = "conversation";
+static char __pyx_k_202[] = "%s";
+static char __pyx_k_203[] = "chat-rename-user\n";
+static char __pyx_k_204[] = "chat-rename-user";
+static char __pyx_k_205[] = "chat-rename-user";
+static char __pyx_k_206[] = "chat-rename-user: TODO";
+static PyObject *__pyx_kp_210;
+static PyObject *__pyx_kp_211;
+static PyObject *__pyx_kp_212;
+static char __pyx_k_207[] = "conversation";
+static char __pyx_k_208[] = "%s";
+static char __pyx_k_209[] = "chat-remove-users\n";
+static char __pyx_k_210[] = "chat-remove-users";
+static char __pyx_k_211[] = "chat-remove-users";
+static char __pyx_k_212[] = "chat-remove-users: TODO";
+static PyObject *__pyx_kp_216;
+static PyObject *__pyx_kp_217;
+static PyObject *__pyx_kp_218;
+static char __pyx_k_213[] = "conversation";
+static char __pyx_k_214[] = "%s";
+static char __pyx_k_215[] = "chat-update-user\n";
+static char __pyx_k_216[] = "chat-update-user";
+static char __pyx_k_217[] = "chat-update-user";
+static char __pyx_k_218[] = "chat-update-user: TODO";
+static PyObject *__pyx_kp_224;
+static char __pyx_k_219[] = "conversation";
+static char __pyx_k_220[] = "%s";
+static char __pyx_k_221[] = "present\n";
+static char __pyx_k_224[] = "present: TODO";
+static PyObject *__pyx_kp_228;
+static PyObject *__pyx_kp_229;
+static PyObject *__pyx_kp_230;
+static char __pyx_k_225[] = "conversation";
+static char __pyx_k_226[] = "%s";
+static char __pyx_k_227[] = "has-focus\n";
+static char __pyx_k_228[] = "has-focus";
+static char __pyx_k_229[] = "has-focus";
+static char __pyx_k_230[] = "has-focus: TODO";
+static PyObject *__pyx_kp_234;
+static PyObject *__pyx_kp_235;
+static PyObject *__pyx_kp_236;
+static char __pyx_k_231[] = "conversation";
+static char __pyx_k_232[] = "%s";
+static char __pyx_k_233[] = "custom-smiley-add\n";
+static char __pyx_k_234[] = "custom-smiley-add";
+static char __pyx_k_235[] = "custom-smiley-add";
+static char __pyx_k_236[] = "custom-smiley-add: TODO";
+static PyObject *__pyx_kp_240;
+static PyObject *__pyx_kp_241;
+static PyObject *__pyx_kp_242;
+static char __pyx_k_237[] = "conversation";
+static char __pyx_k_238[] = "%s";
+static char __pyx_k_239[] = "custom-smiley-write\n";
+static char __pyx_k_240[] = "custom-smiley-write";
+static char __pyx_k_241[] = "custom-smiley-write";
+static char __pyx_k_242[] = "custom-smiley-write: TODO";
+static PyObject *__pyx_kp_246;
+static PyObject *__pyx_kp_247;
+static PyObject *__pyx_kp_248;
+static char __pyx_k_243[] = "conversation";
+static char __pyx_k_244[] = "%s";
+static char __pyx_k_245[] = "custom-smiley-close\n";
+static char __pyx_k_246[] = "custom-smiley-close";
+static char __pyx_k_247[] = "custom-smiley-close";
+static char __pyx_k_248[] = "custom-smiley-close: TODO";
+static PyObject *__pyx_kp_252;
+static PyObject *__pyx_kp_253;
+static PyObject *__pyx_kp_254;
+static char __pyx_k_249[] = "conversation";
+static char __pyx_k_250[] = "%s";
+static char __pyx_k_251[] = "send-confirm\n";
+static char __pyx_k_252[] = "send-confirm";
+static char __pyx_k_253[] = "send-confirm";
+static char __pyx_k_254[] = "send-confirm: TODO";
+static PyObject *__pyx_kp_258;
+static PyObject *__pyx_kp_259;
+static PyObject *__pyx_kp_260;
+static char __pyx_k_255[] = "notify";
+static char __pyx_k_256[] = "%s";
+static char __pyx_k_257[] = "notify-message\n";
+static char __pyx_k_258[] = "notif-message";
+static char __pyx_k_259[] = "notify-message";
+static char __pyx_k_260[] = "notify-message: TODO";
+static PyObject *__pyx_kp_264;
+static PyObject *__pyx_kp_265;
+static PyObject *__pyx_kp_266;
+static char __pyx_k_261[] = "notify";
+static char __pyx_k_262[] = "%s";
+static char __pyx_k_263[] = "notify-email\n";
+static char __pyx_k_264[] = "notify-email";
+static char __pyx_k_265[] = "notify-email";
+static char __pyx_k_266[] = "notify-email: TODO";
+static PyObject *__pyx_kp_270;
+static PyObject *__pyx_kp_271;
+static PyObject *__pyx_kp_272;
+static char __pyx_k_267[] = "notify";
+static char __pyx_k_268[] = "%s";
+static char __pyx_k_269[] = "notify-emails\n";
+static char __pyx_k_270[] = "notify-emails";
+static char __pyx_k_271[] = "notify-emails";
+static char __pyx_k_272[] = "notify-emails: TODO";
+static PyObject *__pyx_kp_276;
+static PyObject *__pyx_kp_277;
+static PyObject *__pyx_kp_278;
+static char __pyx_k_273[] = "notify";
+static char __pyx_k_274[] = "%s";
+static char __pyx_k_275[] = "notify-formatted\n";
+static char __pyx_k_276[] = "notify-formatted";
+static char __pyx_k_277[] = "notify-formatted";
+static char __pyx_k_278[] = "notify-formatted: TODO";
+static PyObject *__pyx_kp_282;
+static PyObject *__pyx_kp_283;
+static PyObject *__pyx_kp_284;
+static char __pyx_k_279[] = "notify";
+static char __pyx_k_280[] = "%s";
+static char __pyx_k_281[] = "notify-searchresults\n";
+static char __pyx_k_282[] = "notify-searchresults";
+static char __pyx_k_283[] = "notify-searchresults";
+static char __pyx_k_284[] = "notify-searchresults: TODO";
+static PyObject *__pyx_kp_288;
+static PyObject *__pyx_kp_289;
+static PyObject *__pyx_kp_290;
+static char __pyx_k_285[] = "notify";
+static char __pyx_k_286[] = "%s";
+static char __pyx_k_287[] = "notify-searchresults-new-rows\n";
+static char __pyx_k_288[] = "notify-searchresults-new-rows";
+static char __pyx_k_289[] = "notify-searchresults-new-rows";
+static char __pyx_k_290[] = "notify-searchresults-new-rows: TODO";
+static PyObject *__pyx_kp_294;
+static PyObject *__pyx_kp_295;
+static PyObject *__pyx_kp_296;
+static char __pyx_k_291[] = "notify";
+static char __pyx_k_292[] = "%s";
+static char __pyx_k_293[] = "notify-userinfo\n";
+static char __pyx_k_294[] = "notify-userinfo";
+static char __pyx_k_295[] = "notify-userinfo";
+static char __pyx_k_296[] = "notify-userinfo: TODO";
+static PyObject *__pyx_kp_300;
+static PyObject *__pyx_kp_301;
+static PyObject *__pyx_kp_302;
+static char __pyx_k_297[] = "notify";
+static char __pyx_k_298[] = "%s";
+static char __pyx_k_299[] = "notify-uri\n";
+static char __pyx_k_300[] = "notify-uri";
+static char __pyx_k_301[] = "notify-uri";
+static char __pyx_k_302[] = "notify-uri: TODO";
+static PyObject *__pyx_kp_306;
+static PyObject *__pyx_kp_307;
+static PyObject *__pyx_kp_308;
+static char __pyx_k_303[] = "notify";
+static char __pyx_k_304[] = "%s";
+static char __pyx_k_305[] = "close-notify\n";
+static char __pyx_k_306[] = "close-notify";
+static char __pyx_k_307[] = "close-notify";
+static char __pyx_k_308[] = "close-notify: TODO";
+static PyObject *__pyx_kp_312;
+static PyObject *__pyx_kp_313;
+static PyObject *__pyx_kp_314;
+static char __pyx_k_309[] = "request";
+static char __pyx_k_310[] = "%s";
+static char __pyx_k_311[] = "request-input\n";
+static char __pyx_k_312[] = "request-input";
+static char __pyx_k_313[] = "request-input";
+static char __pyx_k_314[] = "request-input: TODO";
+static PyObject *__pyx_kp_318;
+static PyObject *__pyx_kp_319;
+static PyObject *__pyx_kp_320;
+static char __pyx_k_315[] = "request";
+static char __pyx_k_316[] = "%s";
+static char __pyx_k_317[] = "request-choice\n";
+static char __pyx_k_318[] = "request-choice";
+static char __pyx_k_319[] = "request-choice";
+static char __pyx_k_320[] = "request-choice: TODO";
+static PyObject *__pyx_kp_324;
+static PyObject *__pyx_kp_325;
+static PyObject *__pyx_kp_326;
+static char __pyx_k_321[] = "request";
+static char __pyx_k_322[] = "%s";
+static char __pyx_k_323[] = "request-action\n";
+static char __pyx_k_324[] = "request-action";
+static char __pyx_k_325[] = "request-action";
+static char __pyx_k_326[] = "request-action: TODo";
+static PyObject *__pyx_kp_330;
+static PyObject *__pyx_kp_331;
+static PyObject *__pyx_kp_332;
+static char __pyx_k_327[] = "request";
+static char __pyx_k_328[] = "%s";
+static char __pyx_k_329[] = "request-fields\n";
+static char __pyx_k_330[] = "request-fields";
+static char __pyx_k_331[] = "request-fields";
+static char __pyx_k_332[] = "request-fields: TODO";
+static PyObject *__pyx_kp_336;
+static PyObject *__pyx_kp_337;
+static PyObject *__pyx_kp_338;
+static char __pyx_k_333[] = "request";
+static char __pyx_k_334[] = "%s";
+static char __pyx_k_335[] = "request-file\n";
+static char __pyx_k_336[] = "request-file";
+static char __pyx_k_337[] = "request-file";
+static char __pyx_k_338[] = "request-file: TODO";
+static PyObject *__pyx_kp_342;
+static PyObject *__pyx_kp_343;
+static PyObject *__pyx_kp_344;
+static char __pyx_k_339[] = "request";
+static char __pyx_k_340[] = "%s";
+static char __pyx_k_341[] = "close-request\n";
+static char __pyx_k_342[] = "close-request";
+static char __pyx_k_343[] = "close-request";
+static char __pyx_k_344[] = "close-request: TODO";
+static PyObject *__pyx_kp_348;
+static PyObject *__pyx_kp_349;
+static PyObject *__pyx_kp_350;
+static char __pyx_k_345[] = "request";
+static char __pyx_k_346[] = "%s";
+static char __pyx_k_347[] = "request-folder\n";
+static char __pyx_k_348[] = "request-folder";
+static char __pyx_k_349[] = "request-folder";
+static char __pyx_k_350[] = "request-folder: TODO";
+static PyObject *__pyx_kp_351;
+static PyObject *__pyx_kp_352;
+static char __pyx_k_351[] = "signed-on";
+static char __pyx_k_352[] = "signed-on";
+static PyObject *__pyx_kp_353;
+static PyObject *__pyx_kp_354;
+static char __pyx_k_353[] = "signed-off";
+static char __pyx_k_354[] = "signed-off";
+static PyObject *__pyx_kp_355;
+static PyObject *__pyx_kp_356;
+static PyObject *__pyx_kp_357;
+static PyObject *__pyx_kp_358;
+static PyObject *__pyx_kp_359;
+static PyObject *__pyx_kp_360;
+static PyObject *__pyx_kp_361;
+static PyObject *__pyx_kp_362;
+static PyObject *__pyx_kp_363;
+static PyObject *__pyx_kp_364;
+static PyObject *__pyx_kp_365;
+static PyObject *__pyx_kp_366;
+static PyObject *__pyx_kp_367;
+static PyObject *__pyx_kp_368;
+static PyObject *__pyx_kp_369;
+static PyObject *__pyx_kp_370;
+static PyObject *__pyx_kp_371;
+static PyObject *__pyx_kp_372;
+static PyObject *__pyx_kp_373;
+static char __pyx_k_355[] = "Network error";
+static char __pyx_k_356[] = "Invalid username";
+static char __pyx_k_357[] = "Authentication failed";
+static char __pyx_k_358[] = "Authentication impossible";
+static char __pyx_k_359[] = "No SSL support";
+static char __pyx_k_360[] = "Encryption error";
+static char __pyx_k_361[] = "Name in use";
+static char __pyx_k_362[] = "Invalid settings";
+static char __pyx_k_363[] = "SSL certificate not provided";
+static char __pyx_k_364[] = "SSL certificate untrusted";
+static char __pyx_k_365[] = "SSL certificate expired";
+static char __pyx_k_366[] = "SSL certificate not activated";
+static char __pyx_k_367[] = "SSL certificate hostname mismatch";
+static char __pyx_k_368[] = "SSL certificate fingerprint mismatch";
+static char __pyx_k_369[] = "SSL certificate self signed";
+static char __pyx_k_370[] = "SSL certificate other error";
+static char __pyx_k_371[] = "Other error";
+static char __pyx_k_372[] = "connection-error";
+static char __pyx_k_373[] = "connection-error";
+static PyObject *__pyx_kp_374;
+static PyObject *__pyx_kp_375;
+static char __pyx_k_374[] = "buddy-signed-on";
+static char __pyx_k_375[] = "buddy-signed-on";
+static PyObject *__pyx_kp_376;
+static PyObject *__pyx_kp_377;
+static char __pyx_k_376[] = "buddy-signed-off";
+static char __pyx_k_377[] = "buddy-signed-off";
+static PyObject *__pyx_kp_378;
+static PyObject *__pyx_kp_379;
+static char __pyx_k_378[] = "receiving-im-msg";
+static char __pyx_k_379[] = "receiving-im-msg";
+static PyObject *__pyx_kp_380;
+static PyObject *__pyx_kp_381;
+static char __pyx_k_380[] = "jabber-receiving-xmlnode";
+static char __pyx_k_381[] = "jabber-receiving-xmlnode";
+static char __pyx_k_382[] = "core_ui_ops";
+static char __pyx_k_383[] = "%s";
+static char __pyx_k_384[] = "ui_prefs_init\n";
+static char __pyx_k_385[] = "/carman";
+static char __pyx_k_386[] = "core_ui_ops";
+static char __pyx_k_387[] = "%s";
+static char __pyx_k_388[] = "debug_ui_init\n";
+static char __pyx_k_389[] = "core_ui_ops";
+static char __pyx_k_390[] = "%s";
+static char __pyx_k_391[] = "ui_init\n";
+static char __pyx_k_392[] = "core_ui_ops";
+static char __pyx_k_393[] = "%s";
+static char __pyx_k_394[] = "quit\n";
+static char __pyx_k_395[] = "name";
+static char __pyx_k_396[] = "version";
+static char __pyx_k_397[] = "website";
+static char __pyx_k_398[] = "dev_website";
+static char __pyx_k_399[] = "main";
+static char __pyx_k_400[] = "%s";
+static char __pyx_k_401[] = "libpurple initialization failed.\n";
+static char __pyx_k_402[] = "main";
+static char __pyx_k_403[] = "%s";
+static char __pyx_k_404[] = "Another instance of libpurple is already running.\n";
+static PyObject *__pyx_kp_412;
+static PyObject *__pyx_kp_414;
+static PyObject *__pyx_kp_416;
+static PyObject *__pyx_kp_418;
+static PyObject *__pyx_kp_420;
+static PyObject *__pyx_kp_422;
+static PyObject *__pyx_kp_424;
+static char __pyx_k_411[] = "prpl-jabber";
+static char __pyx_k_412[] = "signed-on";
+static char __pyx_k_413[] = "signed-on";
+static char __pyx_k_414[] = "signed-off";
+static char __pyx_k_415[] = "signed-off";
+static char __pyx_k_416[] = "connection-error";
+static char __pyx_k_417[] = "connection-error";
+static char __pyx_k_418[] = "buddy-signed-on";
+static char __pyx_k_419[] = "buddy-signed-on";
+static char __pyx_k_420[] = "buddy-signed-off";
+static char __pyx_k_421[] = "buddy-signed-off";
+static char __pyx_k_422[] = "receiving-im-msg";
+static char __pyx_k_423[] = "receiving-im-msg";
+static char __pyx_k_424[] = "jabber-receiving-xmlnode";
+static char __pyx_k_425[] = "jabber-receiving-xmlnode";
+static char __pyx_k_426[] = "";
+static char __pyx_k_449[] = "";
+static char __pyx_k_450[] = "message";
+static char __pyx_k_454[] = "message";
+static char __pyx_k_455[] = "/purple/savedstatus/idleaway";
+static char __pyx_k_456[] = "message";
+static PyObject *__pyx_kp_457;
+static char __pyx_k_457[] = "utf-8";
+static char __pyx_k_458[] = "message";
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":31
+ * cdef void *c_request_authorize_user_data = NULL
+ *
+ * def call_authorize_cb(): # <<<<<<<<<<<<<<
+ * global c_request_authorize_authorize_cb
+ * global c_request_authorize_deny_cb
+ */
+
+static PyObject *__pyx_pf_6purple_call_authorize_cb(PyObject *__pyx_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_call_authorize_cb(PyObject *__pyx_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ __pyx_self = __pyx_self;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":36
+ * global c_request_authorize_user_data
+ *
+ * if c_request_authorize_authorize_cb: # <<<<<<<<<<<<<<
+ * c_request_authorize_authorize_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL
+ */
+ __pyx_1 = (__pyx_v_6purple_c_request_authorize_authorize_cb != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":37
+ *
+ * if c_request_authorize_authorize_cb:
+ * c_request_authorize_authorize_cb(c_request_authorize_user_data) # <<<<<<<<<<<<<<
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL
+ */
+ __pyx_v_6purple_c_request_authorize_authorize_cb(__pyx_v_6purple_c_request_authorize_user_data);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":38
+ * if c_request_authorize_authorize_cb:
+ * c_request_authorize_authorize_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL # <<<<<<<<<<<<<<
+ * c_request_authorize_deny_cb = NULL
+ * c_request_authorize_user_data = NULL
+ */
+ __pyx_v_6purple_c_request_authorize_authorize_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":39
+ * c_request_authorize_authorize_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL # <<<<<<<<<<<<<<
+ * c_request_authorize_user_data = NULL
+ *
+ */
+ __pyx_v_6purple_c_request_authorize_deny_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":40
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL
+ * c_request_authorize_user_data = NULL # <<<<<<<<<<<<<<
+ *
+ * def call_deny_cb():
+ */
+ __pyx_v_6purple_c_request_authorize_user_data = NULL;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":42
+ * c_request_authorize_user_data = NULL
+ *
+ * def call_deny_cb(): # <<<<<<<<<<<<<<
+ * global c_request_authorize_authorize_cb
+ * global c_request_authorize_deny_cb
+ */
+
+static PyObject *__pyx_pf_6purple_call_deny_cb(PyObject *__pyx_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_call_deny_cb(PyObject *__pyx_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ __pyx_self = __pyx_self;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":47
+ * global c_request_authorize_user_data
+ *
+ * if c_request_authorize_deny_cb: # <<<<<<<<<<<<<<
+ * c_request_authorize_deny_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL
+ */
+ __pyx_1 = (__pyx_v_6purple_c_request_authorize_deny_cb != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":48
+ *
+ * if c_request_authorize_deny_cb:
+ * c_request_authorize_deny_cb(c_request_authorize_user_data) # <<<<<<<<<<<<<<
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL
+ */
+ __pyx_v_6purple_c_request_authorize_deny_cb(__pyx_v_6purple_c_request_authorize_user_data);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":49
+ * if c_request_authorize_deny_cb:
+ * c_request_authorize_deny_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL # <<<<<<<<<<<<<<
+ * c_request_authorize_deny_cb = NULL
+ * c_request_authorize_user_data = NULL
+ */
+ __pyx_v_6purple_c_request_authorize_authorize_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":50
+ * c_request_authorize_deny_cb(c_request_authorize_user_data)
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL # <<<<<<<<<<<<<<
+ * c_request_authorize_user_data = NULL
+ *
+ */
+ __pyx_v_6purple_c_request_authorize_deny_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":51
+ * c_request_authorize_authorize_cb = NULL
+ * c_request_authorize_deny_cb = NULL
+ * c_request_authorize_user_data = NULL # <<<<<<<<<<<<<<
+ *
+ * cdef void notify_added(account.PurpleAccount *c_account, \
+ */
+ __pyx_v_6purple_c_request_authorize_user_data = NULL;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":53
+ * c_request_authorize_user_data = NULL
+ *
+ * cdef void notify_added(account.PurpleAccount *c_account, \ # <<<<<<<<<<<<<<
+ * const_char *remote_user, const_char *id, const_char *alias, \
+ * const_char *c_message):
+ */
+
+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) {
+ PurpleConnection *__pyx_v_gc;
+ PyObject *__pyx_v_remote_alias;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_message;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_message = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":61
+ * """
+ * cdef connection.PurpleConnection *gc = \
+ * account.purple_account_get_connection(c_account) # <<<<<<<<<<<<<<
+ *
+ * debug.purple_debug_info("account", "%s", "notify-added\n")
+ */
+ __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":63
+ * account.purple_account_get_connection(c_account)
+ *
+ * debug.purple_debug_info("account", "%s", "notify-added\n") # <<<<<<<<<<<<<<
+ *
+ * if alias:
+ */
+ purple_debug_info(__pyx_k_11, __pyx_k_12, __pyx_k_13);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":65
+ * debug.purple_debug_info("account", "%s", "notify-added\n")
+ *
+ * if alias: # <<<<<<<<<<<<<<
+ * remote_alias = <char *> alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":66
+ *
+ * if alias:
+ * remote_alias = <char *> alias # <<<<<<<<<<<<<<
+ * else:
+ * remote_alias = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":68
+ * remote_alias = <char *> alias
+ * else:
+ * remote_alias = None # <<<<<<<<<<<<<<
+ *
+ * if id:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":70
+ * remote_alias = None
+ *
+ * if id: # <<<<<<<<<<<<<<
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ */
+ __pyx_1 = (__pyx_v_id != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":71
+ *
+ * if id:
+ * username = <char *> id # <<<<<<<<<<<<<<
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":72
+ * if id:
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL: # <<<<<<<<<<<<<<
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ */
+ __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":73
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc) # <<<<<<<<<<<<<<
+ * else:
+ * username = account.purple_account_get_username(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":75
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ * username = account.purple_account_get_username(c_account) # <<<<<<<<<<<<<<
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":77
+ * username = account.purple_account_get_username(c_account)
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account) # <<<<<<<<<<<<<<
+ *
+ * if c_message:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":79
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ * if c_message: # <<<<<<<<<<<<<<
+ * message = <char *> c_message
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_message != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":80
+ *
+ * if c_message:
+ * message = <char *> c_message # <<<<<<<<<<<<<<
+ * else:
+ * message = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":82
+ * message = <char *> c_message
+ * else:
+ * message = None # <<<<<<<<<<<<<<
+ *
+ * if account_cbs.has_key("notify-added"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = Py_None;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":84
+ * message = None
+ *
+ * if account_cbs.has_key("notify-added"): # <<<<<<<<<<<<<<
+ * (<object> account_cbs["notify-added"])( \
+ * (<char *> remote_user, remote_alias), \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_14);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_14);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":85
+ *
+ * if account_cbs.has_key("notify-added"):
+ * (<object> account_cbs["notify-added"])( \ # <<<<<<<<<<<<<<
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), message)
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_15); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":86
+ * if account_cbs.has_key("notify-added"):
+ * (<object> account_cbs["notify-added"])( \
+ * (<char *> remote_user, remote_alias), \ # <<<<<<<<<<<<<<
+ * (username, protocol_id), message)
+ *
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ Py_INCREF(__pyx_v_remote_alias);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":87
+ * (<object> account_cbs["notify-added"])( \
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), message) # <<<<<<<<<<<<<<
+ *
+ * cdef void status_changed(account.PurpleAccount *c_account, \
+ */
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+ __pyx_5 = PyTuple_New(3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_5, 0, ((PyObject *)__pyx_3));
+ PyTuple_SET_ITEM(__pyx_5, 1, ((PyObject *)__pyx_4));
+ Py_INCREF(__pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_message);
+ __pyx_3 = 0;
+ __pyx_4 = 0;
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_WriteUnraisable("purple.notify_added");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_remote_alias);
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_message);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":89
+ * (username, protocol_id), message)
+ *
+ * cdef void status_changed(account.PurpleAccount *c_account, \ # <<<<<<<<<<<<<<
+ * status.PurpleStatus *c_status):
+ * """
+ */
+
+static void __pyx_f_6purple_status_changed(PurpleAccount *__pyx_v_c_account, PurpleStatus *__pyx_v_c_status) {
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_status_id;
+ PyObject *__pyx_v_status_name;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_status_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_status_name = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":94
+ * This account's status changed.
+ * """
+ * debug.purple_debug_info("account", "%s", "status-changed\n") # <<<<<<<<<<<<<<
+ *
+ * username = account.purple_account_get_username(c_account)
+ */
+ purple_debug_info(__pyx_k_16, __pyx_k_17, __pyx_k_18);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":96
+ * debug.purple_debug_info("account", "%s", "status-changed\n")
+ *
+ * username = account.purple_account_get_username(c_account) # <<<<<<<<<<<<<<
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":97
+ *
+ * username = account.purple_account_get_username(c_account)
+ * protocol_id = account.purple_account_get_protocol_id(c_account) # <<<<<<<<<<<<<<
+ *
+ * status_id = status.purple_status_get_id(c_status)
+ */
+ __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 = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":99
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ * status_id = status.purple_status_get_id(c_status) # <<<<<<<<<<<<<<
+ * status_name = status.purple_status_get_name(c_status)
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(purple_status_get_id(__pyx_v_c_status)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_status_id);
+ __pyx_v_status_id = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":100
+ *
+ * status_id = status.purple_status_get_id(c_status)
+ * status_name = status.purple_status_get_name(c_status) # <<<<<<<<<<<<<<
+ *
+ * if account_cbs.has_key("status-changed"):
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(purple_status_get_name(__pyx_v_c_status)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_status_name);
+ __pyx_v_status_name = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":102
+ * status_name = status.purple_status_get_name(c_status)
+ *
+ * if account_cbs.has_key("status-changed"): # <<<<<<<<<<<<<<
+ * (<object> account_cbs["status-changed"])( \
+ * (username, protocol_id), status_id, status_name)
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_19);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_19);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":103
+ *
+ * if account_cbs.has_key("status-changed"):
+ * (<object> account_cbs["status-changed"])( \ # <<<<<<<<<<<<<<
+ * (username, protocol_id), status_id, status_name)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_20); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":104
+ * if account_cbs.has_key("status-changed"):
+ * (<object> account_cbs["status-changed"])( \
+ * (username, protocol_id), status_id, status_name) # <<<<<<<<<<<<<<
+ *
+ * cdef void request_add(account.PurpleAccount *c_account, \
+ */
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_protocol_id);
+ __pyx_2 = PyTuple_New(3); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, ((PyObject *)__pyx_3));
+ Py_INCREF(__pyx_v_status_id);
+ PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_status_id);
+ Py_INCREF(__pyx_v_status_name);
+ PyTuple_SET_ITEM(__pyx_2, 2, __pyx_v_status_name);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.status_changed");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_status_id);
+ Py_DECREF(__pyx_v_status_name);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":106
+ * (username, protocol_id), status_id, status_name)
+ *
+ * cdef void request_add(account.PurpleAccount *c_account, \ # <<<<<<<<<<<<<<
+ * const_char *remote_user, const_char *id, const_char *alias, \
+ * const_char *c_message):
+ */
+
+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) {
+ PurpleConnection *__pyx_v_gc;
+ PyObject *__pyx_v_remote_alias;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_message;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_message = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":113
+ * """
+ * cdef connection.PurpleConnection *gc = \
+ * account.purple_account_get_connection(c_account) # <<<<<<<<<<<<<<
+ *
+ * debug.purple_debug_info("account", "%s", "request-add\n")
+ */
+ __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":115
+ * account.purple_account_get_connection(c_account)
+ *
+ * debug.purple_debug_info("account", "%s", "request-add\n") # <<<<<<<<<<<<<<
+ *
+ * if alias:
+ */
+ purple_debug_info(__pyx_k_21, __pyx_k_22, __pyx_k_23);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":117
+ * debug.purple_debug_info("account", "%s", "request-add\n")
+ *
+ * if alias: # <<<<<<<<<<<<<<
+ * remote_alias = <char *> alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":118
+ *
+ * if alias:
+ * remote_alias = <char *> alias # <<<<<<<<<<<<<<
+ * else:
+ * remote_alias = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":120
+ * remote_alias = <char *> alias
+ * else:
+ * remote_alias = None # <<<<<<<<<<<<<<
+ *
+ * if id:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":122
+ * remote_alias = None
+ *
+ * if id: # <<<<<<<<<<<<<<
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ */
+ __pyx_1 = (__pyx_v_id != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":123
+ *
+ * if id:
+ * username = <char *> id # <<<<<<<<<<<<<<
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":124
+ * if id:
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL: # <<<<<<<<<<<<<<
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ */
+ __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":125
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc) # <<<<<<<<<<<<<<
+ * else:
+ * username = account.purple_account_get_username(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":127
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ * username = account.purple_account_get_username(c_account) # <<<<<<<<<<<<<<
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":129
+ * username = account.purple_account_get_username(c_account)
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account) # <<<<<<<<<<<<<<
+ *
+ * if c_message:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":131
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ * if c_message: # <<<<<<<<<<<<<<
+ * message = <char *> c_message
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_message != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":132
+ *
+ * if c_message:
+ * message = <char *> c_message # <<<<<<<<<<<<<<
+ * else:
+ * message = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":134
+ * message = <char *> c_message
+ * else:
+ * message = None # <<<<<<<<<<<<<<
+ *
+ * if account_cbs.has_key("request-add"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = Py_None;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":136
+ * message = None
+ *
+ * if account_cbs.has_key("request-add"): # <<<<<<<<<<<<<<
+ * (<object> account_cbs["request-add"])( \
+ * (<char *> remote_user, remote_alias), \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_24);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_24);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":137
+ *
+ * if account_cbs.has_key("request-add"):
+ * (<object> account_cbs["request-add"])( \ # <<<<<<<<<<<<<<
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), message)
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_25); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":138
+ * if account_cbs.has_key("request-add"):
+ * (<object> account_cbs["request-add"])( \
+ * (<char *> remote_user, remote_alias), \ # <<<<<<<<<<<<<<
+ * (username, protocol_id), message)
+ *
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ Py_INCREF(__pyx_v_remote_alias);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":139
+ * (<object> account_cbs["request-add"])( \
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), message) # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_authorize(account.PurpleAccount *c_account, \
+ */
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+ __pyx_5 = PyTuple_New(3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_5, 0, ((PyObject *)__pyx_3));
+ PyTuple_SET_ITEM(__pyx_5, 1, ((PyObject *)__pyx_4));
+ Py_INCREF(__pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_message);
+ __pyx_3 = 0;
+ __pyx_4 = 0;
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_WriteUnraisable("purple.request_add");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_remote_alias);
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_message);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":141
+ * (username, protocol_id), message)
+ *
+ * cdef void *request_authorize(account.PurpleAccount *c_account, \ # <<<<<<<<<<<<<<
+ * const_char *remote_user, const_char *id, const_char *alias, \
+ * const_char *c_message, glib.gboolean on_list, \
+ */
+
+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) {
+ PurpleConnection *__pyx_v_gc;
+ PyObject *__pyx_v_remote_alias;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_message;
+ void *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ PyObject *__pyx_7 = 0;
+ PyObject *__pyx_8 = 0;
+ __pyx_v_remote_alias = Py_None; Py_INCREF(Py_None);
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_message = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":154
+ * """
+ * cdef connection.PurpleConnection *gc = \
+ * account.purple_account_get_connection(c_account) # <<<<<<<<<<<<<<
+ *
+ * debug.purple_debug_info("account", "%s", "request-authorize\n")
+ */
+ __pyx_v_gc = purple_account_get_connection(__pyx_v_c_account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":156
+ * account.purple_account_get_connection(c_account)
+ *
+ * debug.purple_debug_info("account", "%s", "request-authorize\n") # <<<<<<<<<<<<<<
+ *
+ * global c_request_authorize_authorize_cb
+ */
+ purple_debug_info(__pyx_k_26, __pyx_k_27, __pyx_k_28);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":162
+ * global c_request_authorize_user_data
+ *
+ * c_request_authorize_authorize_cb = authorize_cb # <<<<<<<<<<<<<<
+ * c_request_authorize_deny_cb = deny_cb
+ * c_request_authorize_user_data = user_data
+ */
+ __pyx_v_6purple_c_request_authorize_authorize_cb = __pyx_v_authorize_cb;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":163
+ *
+ * c_request_authorize_authorize_cb = authorize_cb
+ * c_request_authorize_deny_cb = deny_cb # <<<<<<<<<<<<<<
+ * c_request_authorize_user_data = user_data
+ *
+ */
+ __pyx_v_6purple_c_request_authorize_deny_cb = __pyx_v_deny_cb;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":164
+ * c_request_authorize_authorize_cb = authorize_cb
+ * c_request_authorize_deny_cb = deny_cb
+ * c_request_authorize_user_data = user_data # <<<<<<<<<<<<<<
+ *
+ * if alias:
+ */
+ __pyx_v_6purple_c_request_authorize_user_data = __pyx_v_user_data;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":166
+ * c_request_authorize_user_data = user_data
+ *
+ * if alias: # <<<<<<<<<<<<<<
+ * remote_alias = <char *> alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":167
+ *
+ * if alias:
+ * remote_alias = <char *> alias # <<<<<<<<<<<<<<
+ * else:
+ * remote_alias = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_alias)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":169
+ * remote_alias = <char *> alias
+ * else:
+ * remote_alias = None # <<<<<<<<<<<<<<
+ *
+ * if id:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_remote_alias);
+ __pyx_v_remote_alias = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":171
+ * remote_alias = None
+ *
+ * if id: # <<<<<<<<<<<<<<
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ */
+ __pyx_1 = (__pyx_v_id != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":172
+ *
+ * if id:
+ * username = <char *> id # <<<<<<<<<<<<<<
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":173
+ * if id:
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL: # <<<<<<<<<<<<<<
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ */
+ __pyx_1 = (purple_connection_get_display_name(__pyx_v_gc) != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":174
+ * username = <char *> id
+ * elif connection.purple_connection_get_display_name(gc) != NULL:
+ * username = connection.purple_connection_get_display_name(gc) # <<<<<<<<<<<<<<
+ * else:
+ * username = account.purple_account_get_username(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_connection_get_display_name(__pyx_v_gc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":176
+ * username = connection.purple_connection_get_display_name(gc)
+ * else:
+ * username = account.purple_account_get_username(c_account) # <<<<<<<<<<<<<<
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":178
+ * username = account.purple_account_get_username(c_account)
+ *
+ * protocol_id = account.purple_account_get_protocol_id(c_account) # <<<<<<<<<<<<<<
+ *
+ * if c_message:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":180
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ * if c_message: # <<<<<<<<<<<<<<
+ * message = <char *> c_message
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_message != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":181
+ *
+ * if c_message:
+ * message = <char *> c_message # <<<<<<<<<<<<<<
+ * else:
+ * message = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":183
+ * message = <char *> c_message
+ * else:
+ * message = None # <<<<<<<<<<<<<<
+ *
+ * if account_cbs.has_key("request-authorize"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = Py_None;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":185
+ * message = None
+ *
+ * if account_cbs.has_key("request-authorize"): # <<<<<<<<<<<<<<
+ * (<object> account_cbs["request-authorize"])( \
+ * (<char *> remote_user, remote_alias), \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_29);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_29);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":186
+ *
+ * if account_cbs.has_key("request-authorize"):
+ * (<object> account_cbs["request-authorize"])( \ # <<<<<<<<<<<<<<
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), \
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_30); if (!__pyx_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":187
+ * if account_cbs.has_key("request-authorize"):
+ * (<object> account_cbs["request-authorize"])( \
+ * (<char *> remote_user, remote_alias), \ # <<<<<<<<<<<<<<
+ * (username, protocol_id), \
+ * message, on_list, \
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_remote_user)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ Py_INCREF(__pyx_v_remote_alias);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_remote_alias);
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":188
+ * (<object> account_cbs["request-authorize"])( \
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), \ # <<<<<<<<<<<<<<
+ * message, on_list, \
+ * call_authorize_cb, call_deny_cb)
+ */
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":189
+ * (<char *> remote_user, remote_alias), \
+ * (username, protocol_id), \
+ * message, on_list, \ # <<<<<<<<<<<<<<
+ * call_authorize_cb, call_deny_cb)
+ *
+ */
+ __pyx_5 = PyInt_FromLong(__pyx_v_on_list); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":190
+ * (username, protocol_id), \
+ * message, on_list, \
+ * call_authorize_cb, call_deny_cb) # <<<<<<<<<<<<<<
+ *
+ * cdef void close_account_request (void *ui_handle):
+ */
+ __pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_call_authorize_cb); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_7 = __Pyx_GetName(__pyx_m, __pyx_kp_call_deny_cb); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_8 = PyTuple_New(6); if (unlikely(!__pyx_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_8, 0, ((PyObject *)__pyx_3));
+ PyTuple_SET_ITEM(__pyx_8, 1, ((PyObject *)__pyx_4));
+ Py_INCREF(__pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_8, 2, __pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_8, 3, __pyx_5);
+ PyTuple_SET_ITEM(__pyx_8, 4, __pyx_6);
+ PyTuple_SET_ITEM(__pyx_8, 5, __pyx_7);
+ __pyx_3 = 0;
+ __pyx_4 = 0;
+ __pyx_5 = 0;
+ __pyx_6 = 0;
+ __pyx_7 = 0;
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_8), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_8)); __pyx_8 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ Py_XDECREF(__pyx_7);
+ Py_XDECREF(__pyx_8);
+ __Pyx_WriteUnraisable("purple.request_authorize");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_remote_alias);
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_message);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":192
+ * call_authorize_cb, call_deny_cb)
+ *
+ * cdef void close_account_request (void *ui_handle): # <<<<<<<<<<<<<<
+ * """
+ * Close a pending request for authorization. ui_handle is a handle as
+ */
+
+static void __pyx_f_6purple_close_account_request(void *__pyx_v_ui_handle) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":197
+ * returned by request_authorize.
+ * """
+ * debug.purple_debug_info("account", "%s", "close-account-request\n") # <<<<<<<<<<<<<<
+ *
+ * request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle)
+ */
+ purple_debug_info(__pyx_k_31, __pyx_k_32, __pyx_k_33);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":199
+ * debug.purple_debug_info("account", "%s", "close-account-request\n")
+ *
+ * request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle) # <<<<<<<<<<<<<<
+ *
+ * if account_cbs.has_key("close-account-request"):
+ */
+ purple_request_close(PURPLE_REQUEST_ACTION, __pyx_v_ui_handle);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":201
+ * request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle)
+ *
+ * if account_cbs.has_key("close-account-request"): # <<<<<<<<<<<<<<
+ * (<object> account_cbs["close-account-request"])()
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_34);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_34);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":202
+ *
+ * if account_cbs.has_key("close-account-request"):
+ * (<object> account_cbs["close-account-request"])() # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_35); if (!__pyx_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.close_account_request");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":27
+ * blist_cbs = {}
+ *
+ * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node
+ * cdef char *c_name = NULL
+ */
+
+static void __pyx_f_6purple___group_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
+ PurpleGroup *__pyx_v_group;
+ char *__pyx_v_c_name;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_currentsize;
+ PyObject *__pyx_v_totalsize;
+ PyObject *__pyx_v_online;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_currentsize = Py_None; Py_INCREF(Py_None);
+ __pyx_v_totalsize = Py_None; Py_INCREF(Py_None);
+ __pyx_v_online = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":28
+ *
+ * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node # <<<<<<<<<<<<<<
+ * cdef char *c_name = NULL
+ *
+ */
+ __pyx_v_group = ((PurpleGroup *)__pyx_v_node);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":29
+ * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> blist.purple_group_get_name(group)
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":31
+ * cdef char *c_name = NULL
+ *
+ * c_name = <char *> blist.purple_group_get_name(group) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_group_get_name(__pyx_v_group));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":32
+ *
+ * c_name = <char *> blist.purple_group_get_name(group)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":33
+ * c_name = <char *> blist.purple_group_get_name(group)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":35
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * currentsize = blist.purple_blist_get_group_size(group, False)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":37
+ * name = c_name
+ *
+ * currentsize = blist.purple_blist_get_group_size(group, False) # <<<<<<<<<<<<<<
+ * totalsize = blist.purple_blist_get_group_size(group, True)
+ * online = blist.purple_blist_get_group_online_count(group)
+ */
+ __pyx_2 = PyInt_FromLong(purple_blist_get_group_size(__pyx_v_group, 0)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_currentsize);
+ __pyx_v_currentsize = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":38
+ *
+ * currentsize = blist.purple_blist_get_group_size(group, False)
+ * totalsize = blist.purple_blist_get_group_size(group, True) # <<<<<<<<<<<<<<
+ * online = blist.purple_blist_get_group_online_count(group)
+ *
+ */
+ __pyx_2 = PyInt_FromLong(purple_blist_get_group_size(__pyx_v_group, 1)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_totalsize);
+ __pyx_v_totalsize = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":39
+ * currentsize = blist.purple_blist_get_group_size(group, False)
+ * totalsize = blist.purple_blist_get_group_size(group, True)
+ * online = blist.purple_blist_get_group_online_count(group) # <<<<<<<<<<<<<<
+ *
+ * callback(node.type, name, totalsize, currentsize, online)
+ */
+ __pyx_2 = PyInt_FromLong(purple_blist_get_group_online_count(__pyx_v_group)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_online);
+ __pyx_v_online = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":41
+ * online = blist.purple_blist_get_group_online_count(group)
+ *
+ * callback(node.type, name, totalsize, currentsize, online) # <<<<<<<<<<<<<<
+ *
+ * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
+ */
+ __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(5); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
+ Py_INCREF(__pyx_v_totalsize);
+ PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_totalsize);
+ Py_INCREF(__pyx_v_currentsize);
+ PyTuple_SET_ITEM(__pyx_3, 3, __pyx_v_currentsize);
+ Py_INCREF(__pyx_v_online);
+ PyTuple_SET_ITEM(__pyx_3, 4, __pyx_v_online);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.__group_node_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_currentsize);
+ Py_DECREF(__pyx_v_totalsize);
+ Py_DECREF(__pyx_v_online);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":43
+ * callback(node.type, name, totalsize, currentsize, online)
+ *
+ * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleContact *contact = <blist.PurpleContact *>node
+ * cdef char *c_alias = NULL
+ */
+
+static void __pyx_f_6purple___contact_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
+ PurpleContact *__pyx_v_contact;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_alias;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ __pyx_v_alias = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":44
+ *
+ * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleContact *contact = <blist.PurpleContact *>node # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_contact = ((PurpleContact *)__pyx_v_node);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":45
+ * cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleContact *contact = <blist.PurpleContact *>node
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_contact_get_alias(contact)
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":47
+ * cdef char *c_alias = NULL
+ *
+ * c_alias = <char *> blist.purple_contact_get_alias(contact) # <<<<<<<<<<<<<<
+ * if c_alias == NULL:
+ * alias = None
+ */
+ __pyx_v_c_alias = ((char *)purple_contact_get_alias(__pyx_v_contact));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":48
+ *
+ * c_alias = <char *> blist.purple_contact_get_alias(contact)
+ * if c_alias == NULL: # <<<<<<<<<<<<<<
+ * alias = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":49
+ * c_alias = <char *> blist.purple_contact_get_alias(contact)
+ * if c_alias == NULL:
+ * alias = None # <<<<<<<<<<<<<<
+ * else:
+ * alias = c_alias
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":51
+ * alias = None
+ * else:
+ * alias = c_alias # <<<<<<<<<<<<<<
+ *
+ * callback(node.type, alias, contact.totalsize, contact.currentsize, \
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":53
+ * alias = c_alias
+ *
+ * callback(node.type, alias, contact.totalsize, contact.currentsize, \ # <<<<<<<<<<<<<<
+ * contact.online)
+ *
+ */
+ __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyInt_FromLong(__pyx_v_contact->totalsize); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyInt_FromLong(__pyx_v_contact->currentsize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":54
+ *
+ * callback(node.type, alias, contact.totalsize, contact.currentsize, \
+ * contact.online) # <<<<<<<<<<<<<<
+ *
+ * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
+ */
+ __pyx_5 = PyInt_FromLong(__pyx_v_contact->online); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_6 = PyTuple_New(5); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_6, 0, __pyx_2);
+ Py_INCREF(__pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_6, 2, __pyx_3);
+ PyTuple_SET_ITEM(__pyx_6, 3, __pyx_4);
+ PyTuple_SET_ITEM(__pyx_6, 4, __pyx_5);
+ __pyx_2 = 0;
+ __pyx_3 = 0;
+ __pyx_4 = 0;
+ __pyx_5 = 0;
+ __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ __Pyx_WriteUnraisable("purple.__contact_node_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_alias);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":56
+ * contact.online)
+ *
+ * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
+ * cdef char *c_name = NULL
+ */
+
+static void __pyx_f_6purple___buddy_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
+ PurpleBuddy *__pyx_v_buddy;
+ char *__pyx_v_c_name;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_alias;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_alias = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":57
+ *
+ * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node # <<<<<<<<<<<<<<
+ * cdef char *c_name = NULL
+ * cdef char *c_alias = NULL
+ */
+ __pyx_v_buddy = ((PurpleBuddy *)__pyx_v_node);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":58
+ * cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":59
+ * cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
+ * cdef char *c_name = NULL
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":61
+ * cdef char *c_alias = NULL
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_buddy_get_name(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":62
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":63
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":65
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":67
+ * name = c_name
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy) # <<<<<<<<<<<<<<
+ * if c_alias == NULL:
+ * alias = None
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":68
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL: # <<<<<<<<<<<<<<
+ * alias = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":69
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL:
+ * alias = None # <<<<<<<<<<<<<<
+ * else:
+ * alias = c_alias
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = Py_None;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":71
+ * alias = None
+ * else:
+ * alias = c_alias # <<<<<<<<<<<<<<
+ *
+ * callback(node.type, name, alias)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":73
+ * alias = c_alias
+ *
+ * callback(node.type, name, alias) # <<<<<<<<<<<<<<
+ *
+ * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
+ */
+ __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
+ Py_INCREF(__pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_alias);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.__buddy_node_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_alias);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":75
+ * callback(node.type, name, alias)
+ *
+ * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleChat *chat = <blist.PurpleChat *>node
+ * cdef char *c_name = NULL
+ */
+
+static void __pyx_f_6purple___chat_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
+ PurpleChat *__pyx_v_chat;
+ char *__pyx_v_c_name;
+ PyObject *__pyx_v_name;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":76
+ *
+ * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleChat *chat = <blist.PurpleChat *>node # <<<<<<<<<<<<<<
+ * cdef char *c_name = NULL
+ *
+ */
+ __pyx_v_chat = ((PurpleChat *)__pyx_v_node);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":77
+ * cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
+ * cdef blist.PurpleChat *chat = <blist.PurpleChat *>node
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> blist.purple_chat_get_name(chat)
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":79
+ * cdef char *c_name = NULL
+ *
+ * c_name = <char *> blist.purple_chat_get_name(chat) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_chat_get_name(__pyx_v_chat));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":80
+ *
+ * c_name = <char *> blist.purple_chat_get_name(chat)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":81
+ * c_name = <char *> blist.purple_chat_get_name(chat)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":83
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * callback(node.type, name)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":85
+ * name = c_name
+ *
+ * callback(node.type, name) # <<<<<<<<<<<<<<
+ *
+ * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback):
+ */
+ __pyx_2 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_name);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.__chat_node_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":87
+ * callback(node.type, name)
+ *
+ * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback): # <<<<<<<<<<<<<<
+ * callback(node.type)
+ *
+ */
+
+static void __pyx_f_6purple___other_node_cb(PurpleBlistNode *__pyx_v_node, PyObject *__pyx_v_callback) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":88
+ *
+ * cdef void __other_node_cb(blist.PurpleBlistNode *node, object callback):
+ * callback(node.type) # <<<<<<<<<<<<<<
+ *
+ * cdef void new_list(blist.PurpleBuddyList *list):
+ */
+ __pyx_1 = PyInt_FromLong(__pyx_v_node->type); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_v_callback, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_WriteUnraisable("purple.__other_node_cb");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":90
+ * callback(node.type)
+ *
+ * cdef void new_list(blist.PurpleBuddyList *list): # <<<<<<<<<<<<<<
+ * """
+ * Sets UI-specific data on a buddy list.
+ */
+
+static void __pyx_f_6purple_new_list(PurpleBuddyList *__pyx_v_list) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":94
+ * Sets UI-specific data on a buddy list.
+ * """
+ * debug.purple_debug_info("blist", "%s", "new-list\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("new-list"):
+ * (<object> blist_cbs["new-list"])("new-list: TODO")
+ */
+ purple_debug_info(__pyx_k_36, __pyx_k_37, __pyx_k_38);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":95
+ * """
+ * debug.purple_debug_info("blist", "%s", "new-list\n")
+ * if blist_cbs.has_key("new-list"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["new-list"])("new-list: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_39);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_39);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":96
+ * debug.purple_debug_info("blist", "%s", "new-list\n")
+ * if blist_cbs.has_key("new-list"):
+ * (<object> blist_cbs["new-list"])("new-list: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void new_node(blist.PurpleBlistNode *node):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_40); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_41);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_41);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.new_list");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":98
+ * (<object> blist_cbs["new-list"])("new-list: TODO")
+ *
+ * cdef void new_node(blist.PurpleBlistNode *node): # <<<<<<<<<<<<<<
+ * """
+ * Sets UI-specific data on a node.
+ */
+
+static void __pyx_f_6purple_new_node(PurpleBlistNode *__pyx_v_node) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":102
+ * Sets UI-specific data on a node.
+ * """
+ * debug.purple_debug_info("blist", "%s", "new-node\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("new-node"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ */
+ purple_debug_info(__pyx_k_42, __pyx_k_43, __pyx_k_44);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":103
+ * """
+ * debug.purple_debug_info("blist", "%s", "new-node\n")
+ * if blist_cbs.has_key("new-node"): # <<<<<<<<<<<<<<
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["new-node"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_45);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_45);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":104
+ * debug.purple_debug_info("blist", "%s", "new-node\n")
+ * if blist_cbs.has_key("new-node"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE: # <<<<<<<<<<<<<<
+ * __group_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":105
+ * if blist_cbs.has_key("new-node"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["new-node"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["new-node"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_46); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":106
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: # <<<<<<<<<<<<<<
+ * __contact_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":107
+ * __group_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["new-node"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["new-node"])
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_47); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":108
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: # <<<<<<<<<<<<<<
+ * __buddy_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":109
+ * __contact_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["new-node"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["new-node"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_48); if (!__pyx_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":110
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE: # <<<<<<<<<<<<<<
+ * __chat_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":111
+ * __buddy_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["new-node"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["new-node"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_49); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":112
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE: # <<<<<<<<<<<<<<
+ * __other_node_cb(node, blist_cbs["new-node"])
+ *
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":113
+ * __chat_node_cb(node, blist_cbs["new-node"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["new-node"]) # <<<<<<<<<<<<<<
+ *
+ * cdef void show(blist.PurpleBuddyList *list):
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_50); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.new_node");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":115
+ * __other_node_cb(node, blist_cbs["new-node"])
+ *
+ * cdef void show(blist.PurpleBuddyList *list): # <<<<<<<<<<<<<<
+ * """
+ * The core will call this when it's finished doing its core stuff.
+ */
+
+static void __pyx_f_6purple_show(PurpleBuddyList *__pyx_v_list) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":119
+ * The core will call this when it's finished doing its core stuff.
+ * """
+ * debug.purple_debug_info("blist", "%s", "show\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("show"):
+ * (<object> blist_cbs["show"])("show: TODO")
+ */
+ purple_debug_info(__pyx_k_51, __pyx_k_52, __pyx_k_53);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":120
+ * """
+ * debug.purple_debug_info("blist", "%s", "show\n")
+ * if blist_cbs.has_key("show"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["show"])("show: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_54);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_54);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":121
+ * debug.purple_debug_info("blist", "%s", "show\n")
+ * if blist_cbs.has_key("show"):
+ * (<object> blist_cbs["show"])("show: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void update(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_55); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_56);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_56);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.show");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":123
+ * (<object> blist_cbs["show"])("show: TODO")
+ *
+ * cdef void update(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node): # <<<<<<<<<<<<<<
+ * """
+ * This will update a node in the buddy list.
+ */
+
+static void __pyx_f_6purple_update(PurpleBuddyList *__pyx_v_list, PurpleBlistNode *__pyx_v_node) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":127
+ * This will update a node in the buddy list.
+ * """
+ * debug.purple_debug_info("blist", "%s", "update\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("update"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ */
+ purple_debug_info(__pyx_k_57, __pyx_k_58, __pyx_k_59);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":128
+ * """
+ * debug.purple_debug_info("blist", "%s", "update\n")
+ * if blist_cbs.has_key("update"): # <<<<<<<<<<<<<<
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["update"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_60);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_60);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":129
+ * debug.purple_debug_info("blist", "%s", "update\n")
+ * if blist_cbs.has_key("update"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE: # <<<<<<<<<<<<<<
+ * __group_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":130
+ * if blist_cbs.has_key("update"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["update"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["update"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_61); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":131
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: # <<<<<<<<<<<<<<
+ * __contact_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":132
+ * __group_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["update"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["update"])
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_62); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":133
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: # <<<<<<<<<<<<<<
+ * __buddy_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":134
+ * __contact_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["update"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["update"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_63); if (!__pyx_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":135
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE: # <<<<<<<<<<<<<<
+ * __chat_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":136
+ * __buddy_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["update"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["update"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_64); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":137
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE: # <<<<<<<<<<<<<<
+ * __other_node_cb(node, blist_cbs["update"])
+ *
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":138
+ * __chat_node_cb(node, blist_cbs["update"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["update"]) # <<<<<<<<<<<<<<
+ *
+ * cdef void remove(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_65); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.update");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":140
+ * __other_node_cb(node, blist_cbs["update"])
+ *
+ * cdef void remove(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node): # <<<<<<<<<<<<<<
+ * """
+ * This removes a node from the list.
+ */
+
+static void __pyx_f_6purple_remove(PurpleBuddyList *__pyx_v_list, PurpleBlistNode *__pyx_v_node) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":144
+ * This removes a node from the list.
+ * """
+ * debug.purple_debug_info("blist", "%s", "remove\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("remove"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ */
+ purple_debug_info(__pyx_k_66, __pyx_k_67, __pyx_k_68);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":145
+ * """
+ * debug.purple_debug_info("blist", "%s", "remove\n")
+ * if blist_cbs.has_key("remove"): # <<<<<<<<<<<<<<
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["remove"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_69);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_69);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":146
+ * debug.purple_debug_info("blist", "%s", "remove\n")
+ * if blist_cbs.has_key("remove"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE: # <<<<<<<<<<<<<<
+ * __group_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_GROUP_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":147
+ * if blist_cbs.has_key("remove"):
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["remove"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["remove"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_70); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___group_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":148
+ * if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ * __group_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: # <<<<<<<<<<<<<<
+ * __contact_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CONTACT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":149
+ * __group_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["remove"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["remove"])
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_71); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___contact_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":150
+ * elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ * __contact_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: # <<<<<<<<<<<<<<
+ * __buddy_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_BUDDY_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":151
+ * __contact_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["remove"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["remove"])
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_kp_72); if (!__pyx_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_f_6purple___buddy_node_cb(__pyx_v_node, __pyx_3);
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":152
+ * elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ * __buddy_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE: # <<<<<<<<<<<<<<
+ * __chat_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_CHAT_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":153
+ * __buddy_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["remove"]) # <<<<<<<<<<<<<<
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["remove"])
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_73); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_f_6purple___chat_node_cb(__pyx_v_node, __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":154
+ * elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ * __chat_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE: # <<<<<<<<<<<<<<
+ * __other_node_cb(node, blist_cbs["remove"])
+ *
+ */
+ __pyx_4 = (__pyx_v_node->type == PURPLE_BLIST_OTHER_NODE);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":155
+ * __chat_node_cb(node, blist_cbs["remove"])
+ * elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ * __other_node_cb(node, blist_cbs["remove"]) # <<<<<<<<<<<<<<
+ *
+ * cdef void destroy(blist.PurpleBuddyList *list):
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_74); if (!__pyx_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_f_6purple___other_node_cb(__pyx_v_node, __pyx_2);
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.remove");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":157
+ * __other_node_cb(node, blist_cbs["remove"])
+ *
+ * cdef void destroy(blist.PurpleBuddyList *list): # <<<<<<<<<<<<<<
+ * """
+ * When the list gets destroyed, this gets called to destroy the UI.
+ */
+
+static void __pyx_f_6purple_destroy(PurpleBuddyList *__pyx_v_list) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":161
+ * When the list gets destroyed, this gets called to destroy the UI.
+ * """
+ * debug.purple_debug_info("blist", "%s", "destroy\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("destroy"):
+ * (<object> blist_cbs["destroy"])("destroy: TODO")
+ */
+ purple_debug_info(__pyx_k_75, __pyx_k_76, __pyx_k_77);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":162
+ * """
+ * debug.purple_debug_info("blist", "%s", "destroy\n")
+ * if blist_cbs.has_key("destroy"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["destroy"])("destroy: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_78);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_78);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":163
+ * debug.purple_debug_info("blist", "%s", "destroy\n")
+ * if blist_cbs.has_key("destroy"):
+ * (<object> blist_cbs["destroy"])("destroy: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void set_visible(blist.PurpleBuddyList *list, glib.gboolean show):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_79); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_80);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_80);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.destroy");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":165
+ * (<object> blist_cbs["destroy"])("destroy: TODO")
+ *
+ * cdef void set_visible(blist.PurpleBuddyList *list, glib.gboolean show): # <<<<<<<<<<<<<<
+ * """
+ * Hides or unhides the buddy list.
+ */
+
+static void __pyx_f_6purple_set_visible(PurpleBuddyList *__pyx_v_list, gboolean __pyx_v_show) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":169
+ * Hides or unhides the buddy list.
+ * """
+ * debug.purple_debug_info("blist", "%s", "set-visible\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("set-visible"):
+ * (<object> blist_cbs["set-visible"])("set-visible: TODO")
+ */
+ purple_debug_info(__pyx_k_81, __pyx_k_82, __pyx_k_83);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":170
+ * """
+ * debug.purple_debug_info("blist", "%s", "set-visible\n")
+ * if blist_cbs.has_key("set-visible"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["set-visible"])("set-visible: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_84);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_84);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":171
+ * debug.purple_debug_info("blist", "%s", "set-visible\n")
+ * if blist_cbs.has_key("set-visible"):
+ * (<object> blist_cbs["set-visible"])("set-visible: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void request_add_buddy(account.PurpleAccount *c_account, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_85); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_86);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_86);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.set_visible");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":173
+ * (<object> blist_cbs["set-visible"])("set-visible: TODO")
+ *
+ * cdef void request_add_buddy(account.PurpleAccount *c_account, \ # <<<<<<<<<<<<<<
+ * const_char *c_buddy_username, const_char *c_buddy_group, \
+ * const_char *c_buddy_alias):
+ */
+
+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) {
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_buddy_username;
+ PyObject *__pyx_v_buddy_group;
+ PyObject *__pyx_v_buddy_alias;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_buddy_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_buddy_group = Py_None; Py_INCREF(Py_None);
+ __pyx_v_buddy_alias = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":180
+ * list.
+ * """
+ * debug.purple_debug_info("blist", "%s", "request-add-buddy\n") # <<<<<<<<<<<<<<
+ *
+ * username = account.purple_account_get_username(c_account)
+ */
+ purple_debug_info(__pyx_k_87, __pyx_k_88, __pyx_k_89);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":182
+ * debug.purple_debug_info("blist", "%s", "request-add-buddy\n")
+ *
+ * username = account.purple_account_get_username(c_account) # <<<<<<<<<<<<<<
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_username(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":183
+ *
+ * username = account.purple_account_get_username(c_account)
+ * protocol_id = account.purple_account_get_protocol_id(c_account) # <<<<<<<<<<<<<<
+ *
+ * if c_buddy_username:
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(purple_account_get_protocol_id(__pyx_v_c_account)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":185
+ * protocol_id = account.purple_account_get_protocol_id(c_account)
+ *
+ * if c_buddy_username: # <<<<<<<<<<<<<<
+ * buddy_username = <char *> c_buddy_username
+ * else:
+ */
+ __pyx_2 = (__pyx_v_c_buddy_username != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":186
+ *
+ * if c_buddy_username:
+ * buddy_username = <char *> c_buddy_username # <<<<<<<<<<<<<<
+ * else:
+ * buddy_username = None
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_buddy_username)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_buddy_username);
+ __pyx_v_buddy_username = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":188
+ * buddy_username = <char *> c_buddy_username
+ * else:
+ * buddy_username = None # <<<<<<<<<<<<<<
+ *
+ * if c_buddy_group:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_buddy_username);
+ __pyx_v_buddy_username = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":190
+ * buddy_username = None
+ *
+ * if c_buddy_group: # <<<<<<<<<<<<<<
+ * buddy_group = <char *> c_buddy_group
+ * else:
+ */
+ __pyx_2 = (__pyx_v_c_buddy_group != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":191
+ *
+ * if c_buddy_group:
+ * buddy_group = <char *> c_buddy_group # <<<<<<<<<<<<<<
+ * else:
+ * buddy_group = None
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_buddy_group)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_buddy_group);
+ __pyx_v_buddy_group = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":193
+ * buddy_group = <char *> c_buddy_group
+ * else:
+ * buddy_group = None # <<<<<<<<<<<<<<
+ *
+ * if c_buddy_alias:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_buddy_group);
+ __pyx_v_buddy_group = Py_None;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":195
+ * buddy_group = None
+ *
+ * if c_buddy_alias: # <<<<<<<<<<<<<<
+ * buddy_alias = <char *> c_buddy_alias
+ * else:
+ */
+ __pyx_2 = (__pyx_v_c_buddy_alias != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":196
+ *
+ * if c_buddy_alias:
+ * buddy_alias = <char *> c_buddy_alias # <<<<<<<<<<<<<<
+ * else:
+ * buddy_alias = None
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_buddy_alias)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_buddy_alias);
+ __pyx_v_buddy_alias = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":198
+ * buddy_alias = <char *> c_buddy_alias
+ * else:
+ * buddy_alias = None # <<<<<<<<<<<<<<
+ *
+ * if blist_cbs.has_key("request-add-buddy"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_buddy_alias);
+ __pyx_v_buddy_alias = Py_None;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":200
+ * buddy_alias = None
+ *
+ * if blist_cbs.has_key("request-add-buddy"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["request-add-buddy"])( \
+ * (username, protocol_id), \
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_90);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_90);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":201
+ *
+ * if blist_cbs.has_key("request-add-buddy"):
+ * (<object> blist_cbs["request-add-buddy"])( \ # <<<<<<<<<<<<<<
+ * (username, protocol_id), \
+ * buddy_username, buddy_group, buddy_alias)
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_3, __pyx_kp_91); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":202
+ * if blist_cbs.has_key("request-add-buddy"):
+ * (<object> blist_cbs["request-add-buddy"])( \
+ * (username, protocol_id), \ # <<<<<<<<<<<<<<
+ * buddy_username, buddy_group, buddy_alias)
+ *
+ */
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":203
+ * (<object> blist_cbs["request-add-buddy"])( \
+ * (username, protocol_id), \
+ * buddy_username, buddy_group, buddy_alias) # <<<<<<<<<<<<<<
+ *
+ * cdef void request_add_chat(account.PurpleAccount *acc, \
+ */
+ __pyx_3 = PyTuple_New(4); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, ((PyObject *)__pyx_4));
+ Py_INCREF(__pyx_v_buddy_username);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_buddy_username);
+ Py_INCREF(__pyx_v_buddy_group);
+ PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_buddy_group);
+ Py_INCREF(__pyx_v_buddy_alias);
+ PyTuple_SET_ITEM(__pyx_3, 3, __pyx_v_buddy_alias);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.request_add_buddy");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_buddy_username);
+ Py_DECREF(__pyx_v_buddy_group);
+ Py_DECREF(__pyx_v_buddy_alias);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":205
+ * buddy_username, buddy_group, buddy_alias)
+ *
+ * cdef void request_add_chat(account.PurpleAccount *acc, \ # <<<<<<<<<<<<<<
+ * blist.PurpleGroup *group, const_char *alias, const_char *name):
+ * """
+ */
+
+static void __pyx_f_6purple_request_add_chat(PurpleAccount *__pyx_v_acc, PurpleGroup *__pyx_v_group, const char *__pyx_v_alias, const char *__pyx_v_name) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":210
+ * TODO
+ * """
+ * debug.purple_debug_info("blist", "%s", "request-add-chat\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("request-add-chat"):
+ * (<object> blist_cbs["request-add-chat"])("request-add-chat: TODO")
+ */
+ purple_debug_info(__pyx_k_92, __pyx_k_93, __pyx_k_94);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":211
+ * """
+ * debug.purple_debug_info("blist", "%s", "request-add-chat\n")
+ * if blist_cbs.has_key("request-add-chat"): # <<<<<<<<<<<<<<
+ * (<object> blist_cbs["request-add-chat"])("request-add-chat: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_95);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_95);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":212
+ * debug.purple_debug_info("blist", "%s", "request-add-chat\n")
+ * if blist_cbs.has_key("request-add-chat"):
+ * (<object> blist_cbs["request-add-chat"])("request-add-chat: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void request_add_group():
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_96); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_97);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_97);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_add_chat");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":214
+ * (<object> blist_cbs["request-add-chat"])("request-add-chat: TODO")
+ *
+ * cdef void request_add_group(): # <<<<<<<<<<<<<<
+ * """
+ * TODO
+ */
+
+static void __pyx_f_6purple_request_add_group(void) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":218
+ * TODO
+ * """
+ * debug.purple_debug_info("blist", "%s", "request-add-group\n") # <<<<<<<<<<<<<<
+ * if blist_cbs.has_key("request-add-chat"):
+ * (<object>blist_cbs["request-add-chat"])("request-add-group: TODO")
+ */
+ purple_debug_info(__pyx_k_98, __pyx_k_99, __pyx_k_100);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":219
+ * """
+ * debug.purple_debug_info("blist", "%s", "request-add-group\n")
+ * if blist_cbs.has_key("request-add-chat"): # <<<<<<<<<<<<<<
+ * (<object>blist_cbs["request-add-chat"])("request-add-group: TODO")
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_101);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_101);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":220
+ * debug.purple_debug_info("blist", "%s", "request-add-group\n")
+ * if blist_cbs.has_key("request-add-chat"):
+ * (<object>blist_cbs["request-add-chat"])("request-add-group: TODO") # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_102); if (!__pyx_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_103);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_103);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_add_group");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":30
+ * ctypedef int size_t
+ *
+ * cdef void connect_progress(connection.PurpleConnection *gc, const_char *text, \ # <<<<<<<<<<<<<<
+ * size_t step, size_t step_count):
+ * """
+ */
+
+static void __pyx_f_6purple_connect_progress(PurpleConnection *__pyx_v_gc, const char *__pyx_v_text, size_t __pyx_v_step, size_t __pyx_v_step_count) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":37
+ * reached (which might be displayed as a progress bar).
+ * """
+ * debug.purple_debug_info("connection", "%s", "connect-progress\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("connect-progress"):
+ * (<object> connection_cbs["connect-progress"])(<char *> text, step, step_count)
+ */
+ purple_debug_info(__pyx_k_104, __pyx_k_105, __pyx_k_106);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":38
+ * """
+ * debug.purple_debug_info("connection", "%s", "connect-progress\n")
+ * if connection_cbs.has_key("connect-progress"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["connect-progress"])(<char *> text, step, step_count)
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_107);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_107);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":39
+ * debug.purple_debug_info("connection", "%s", "connect-progress\n")
+ * if connection_cbs.has_key("connect-progress"):
+ * (<object> connection_cbs["connect-progress"])(<char *> text, step, step_count) # <<<<<<<<<<<<<<
+ *
+ * cdef void connected(connection.PurpleConnection *gc):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_108); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_text)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyInt_FromLong(__pyx_v_step); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyInt_FromLong(__pyx_v_step_count); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_6 = PyTuple_New(3); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_6, 0, __pyx_3);
+ PyTuple_SET_ITEM(__pyx_6, 1, __pyx_2);
+ PyTuple_SET_ITEM(__pyx_6, 2, __pyx_5);
+ __pyx_3 = 0;
+ __pyx_2 = 0;
+ __pyx_5 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ __Pyx_WriteUnraisable("purple.connect_progress");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":41
+ * (<object> connection_cbs["connect-progress"])(<char *> text, step, step_count)
+ *
+ * cdef void connected(connection.PurpleConnection *gc): # <<<<<<<<<<<<<<
+ * """
+ * Called when a connection is established (just before the signed-on signal).
+ */
+
+static void __pyx_f_6purple_connected(PurpleConnection *__pyx_v_gc) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":45
+ * Called when a connection is established (just before the signed-on signal).
+ * """
+ * debug.purple_debug_info("connection", "%s", "connected\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("connected"):
+ * (<object> connection_cbs["connected"])("connected: TODO")
+ */
+ purple_debug_info(__pyx_k_109, __pyx_k_110, __pyx_k_111);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":46
+ * """
+ * debug.purple_debug_info("connection", "%s", "connected\n")
+ * if connection_cbs.has_key("connected"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["connected"])("connected: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_112);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_112);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":47
+ * debug.purple_debug_info("connection", "%s", "connected\n")
+ * if connection_cbs.has_key("connected"):
+ * (<object> connection_cbs["connected"])("connected: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void disconnected(connection.PurpleConnection *gc):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_113); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_114);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_114);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.connected");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":49
+ * (<object> connection_cbs["connected"])("connected: TODO")
+ *
+ * cdef void disconnected(connection.PurpleConnection *gc): # <<<<<<<<<<<<<<
+ * """
+ * Called when a connection is ended (between the signing-off and signed-off
+ */
+
+static void __pyx_f_6purple_disconnected(PurpleConnection *__pyx_v_gc) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":54
+ * signal).
+ * """
+ * debug.purple_debug_info("connection", "%s", "disconnected\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("disconnected"):
+ * (<object> connection_cbs["disconnected"])("disconnected: TODO")
+ */
+ purple_debug_info(__pyx_k_115, __pyx_k_116, __pyx_k_117);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":55
+ * """
+ * debug.purple_debug_info("connection", "%s", "disconnected\n")
+ * if connection_cbs.has_key("disconnected"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["disconnected"])("disconnected: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_118);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_118);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":56
+ * debug.purple_debug_info("connection", "%s", "disconnected\n")
+ * if connection_cbs.has_key("disconnected"):
+ * (<object> connection_cbs["disconnected"])("disconnected: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void notice(connection.PurpleConnection *gc, const_char *text):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_119); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_120);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_120);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.disconnected");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":58
+ * (<object> connection_cbs["disconnected"])("disconnected: TODO")
+ *
+ * cdef void notice(connection.PurpleConnection *gc, const_char *text): # <<<<<<<<<<<<<<
+ * """
+ * Used to display connection-specific notices. (Pidgin's Gtk user interface
+ */
+
+static void __pyx_f_6purple_notice(PurpleConnection *__pyx_v_gc, const char *__pyx_v_text) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":64
+ * operation, is not used by any of the protocols shipped with libpurple.)
+ * """
+ * debug.purple_debug_info("connection", "%s", "notice\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("notice"):
+ * (<object> connection_cbs["notice"])("notice: TODO")
+ */
+ purple_debug_info(__pyx_k_121, __pyx_k_122, __pyx_k_123);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":65
+ * """
+ * debug.purple_debug_info("connection", "%s", "notice\n")
+ * if connection_cbs.has_key("notice"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["notice"])("notice: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_124);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_124);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":66
+ * debug.purple_debug_info("connection", "%s", "notice\n")
+ * if connection_cbs.has_key("notice"):
+ * (<object> connection_cbs["notice"])("notice: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void report_disconnect(connection.PurpleConnection *gc, const_char *text):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_125); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_126);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_126);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notice");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":68
+ * (<object> connection_cbs["notice"])("notice: TODO")
+ *
+ * cdef void report_disconnect(connection.PurpleConnection *gc, const_char *text): # <<<<<<<<<<<<<<
+ * """
+ * Called when an error causes a connection to be disconnected.
+ */
+
+static void __pyx_f_6purple_report_disconnect(PurpleConnection *__pyx_v_gc, const char *__pyx_v_text) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":77
+ * PurpleConnectionUiOps.report_disconnect_reason.
+ * """
+ * debug.purple_debug_info("connection", "%s", "report-disconnect\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("report-disconnect"):
+ * (<object> connection_cbs["report-disconnect"])(<char *> text)
+ */
+ purple_debug_info(__pyx_k_127, __pyx_k_128, __pyx_k_129);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":78
+ * """
+ * debug.purple_debug_info("connection", "%s", "report-disconnect\n")
+ * if connection_cbs.has_key("report-disconnect"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["report-disconnect"])(<char *> text)
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_130);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_130);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":79
+ * debug.purple_debug_info("connection", "%s", "report-disconnect\n")
+ * if connection_cbs.has_key("report-disconnect"):
+ * (<object> connection_cbs["report-disconnect"])(<char *> text) # <<<<<<<<<<<<<<
+ *
+ * cdef void network_connected():
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_131); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_text)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.report_disconnect");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":81
+ * (<object> connection_cbs["report-disconnect"])(<char *> text)
+ *
+ * cdef void network_connected(): # <<<<<<<<<<<<<<
+ * """
+ * Called when libpurple discovers that the computer's network connection
+ */
+
+static void __pyx_f_6purple_network_connected(void) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":87
+ * it uses Win32's network change notification infrastructure.
+ * """
+ * debug.purple_debug_info("connection", "%s", "network-connected\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("network-connected"):
+ * (<object> connection_cbs["network-connected"])()
+ */
+ purple_debug_info(__pyx_k_132, __pyx_k_133, __pyx_k_134);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":88
+ * """
+ * debug.purple_debug_info("connection", "%s", "network-connected\n")
+ * if connection_cbs.has_key("network-connected"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["network-connected"])()
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_135);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_135);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":89
+ * debug.purple_debug_info("connection", "%s", "network-connected\n")
+ * if connection_cbs.has_key("network-connected"):
+ * (<object> connection_cbs["network-connected"])() # <<<<<<<<<<<<<<
+ *
+ * cdef void network_disconnected():
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_136); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.network_connected");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":91
+ * (<object> connection_cbs["network-connected"])()
+ *
+ * cdef void network_disconnected(): # <<<<<<<<<<<<<<
+ * """
+ * Called when libpurple discovers that the computer's network connection
+ */
+
+static void __pyx_f_6purple_network_disconnected(void) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":96
+ * has gone away.
+ * """
+ * debug.purple_debug_info("connection", "%s", "network-disconnected\n") # <<<<<<<<<<<<<<
+ * if connection_cbs.has_key("network-disconnected"):
+ * (<object> connection_cbs["network-disconnected"])()
+ */
+ purple_debug_info(__pyx_k_137, __pyx_k_138, __pyx_k_139);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":97
+ * """
+ * debug.purple_debug_info("connection", "%s", "network-disconnected\n")
+ * if connection_cbs.has_key("network-disconnected"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["network-disconnected"])()
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_140);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_140);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":98
+ * debug.purple_debug_info("connection", "%s", "network-disconnected\n")
+ * if connection_cbs.has_key("network-disconnected"):
+ * (<object> connection_cbs["network-disconnected"])() # <<<<<<<<<<<<<<
+ *
+ * cdef void report_disconnect_reason(connection.PurpleConnection *gc, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_141); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.network_disconnected");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":100
+ * (<object> connection_cbs["network-disconnected"])()
+ *
+ * cdef void report_disconnect_reason(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * connection.PurpleConnectionError reason, const_char *c_text):
+ * """
+ */
+
+static void __pyx_f_6purple_report_disconnect_reason(PurpleConnection *__pyx_v_gc, PurpleConnectionError __pyx_v_reason, const char *__pyx_v_c_text) {
+ PyObject *__pyx_v_reason_string;
+ PyObject *__pyx_v_text;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ char *__pyx_5;
+ __pyx_v_reason_string = Py_None; Py_INCREF(Py_None);
+ __pyx_v_text = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":114
+ * @since 2.3.0
+ * """
+ * debug.purple_debug_info("connection", "%s", "report-disconnect-reason\n") # <<<<<<<<<<<<<<
+ *
+ * reason_string = {
+ */
+ purple_debug_info(__pyx_k_142, __pyx_k_143, __pyx_k_144);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":133
+ * 14: 'Certificate self signed',
+ * 15: 'Certificate error (other)',
+ * 16: 'Other error' }[reason] # <<<<<<<<<<<<<<
+ *
+ * if c_text:
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":117
+ *
+ * reason_string = {
+ * 0: 'Network error', # <<<<<<<<<<<<<<
+ * 1: 'Invalid username',
+ * 2: 'Authentication failed',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_0, __pyx_kp_145) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":118
+ * reason_string = {
+ * 0: 'Network error',
+ * 1: 'Invalid username', # <<<<<<<<<<<<<<
+ * 2: 'Authentication failed',
+ * 3: 'Authentication impossible',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_1, __pyx_kp_146) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":119
+ * 0: 'Network error',
+ * 1: 'Invalid username',
+ * 2: 'Authentication failed', # <<<<<<<<<<<<<<
+ * 3: 'Authentication impossible',
+ * 4: 'No SSL support',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_2, __pyx_kp_147) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":120
+ * 1: 'Invalid username',
+ * 2: 'Authentication failed',
+ * 3: 'Authentication impossible', # <<<<<<<<<<<<<<
+ * 4: 'No SSL support',
+ * 5: 'Encryption error',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_3, __pyx_kp_148) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":121
+ * 2: 'Authentication failed',
+ * 3: 'Authentication impossible',
+ * 4: 'No SSL support', # <<<<<<<<<<<<<<
+ * 5: 'Encryption error',
+ * 6: 'Name in use',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_4, __pyx_kp_149) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":122
+ * 3: 'Authentication impossible',
+ * 4: 'No SSL support',
+ * 5: 'Encryption error', # <<<<<<<<<<<<<<
+ * 6: 'Name in use',
+ * 7: 'Invalid settings',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_5, __pyx_kp_150) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":123
+ * 4: 'No SSL support',
+ * 5: 'Encryption error',
+ * 6: 'Name in use', # <<<<<<<<<<<<<<
+ * 7: 'Invalid settings',
+ * 8: 'Certificate not provided',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_6, __pyx_kp_151) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":124
+ * 5: 'Encryption error',
+ * 6: 'Name in use',
+ * 7: 'Invalid settings', # <<<<<<<<<<<<<<
+ * 8: 'Certificate not provided',
+ * 9: 'Certificate untrusted',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_7, __pyx_kp_152) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":125
+ * 6: 'Name in use',
+ * 7: 'Invalid settings',
+ * 8: 'Certificate not provided', # <<<<<<<<<<<<<<
+ * 9: 'Certificate untrusted',
+ * 10: 'Certificate expired',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_8, __pyx_kp_153) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":126
+ * 7: 'Invalid settings',
+ * 8: 'Certificate not provided',
+ * 9: 'Certificate untrusted', # <<<<<<<<<<<<<<
+ * 10: 'Certificate expired',
+ * 11: 'Certificate not activated',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_9, __pyx_kp_154) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":127
+ * 8: 'Certificate not provided',
+ * 9: 'Certificate untrusted',
+ * 10: 'Certificate expired', # <<<<<<<<<<<<<<
+ * 11: 'Certificate not activated',
+ * 12: 'Certificate hostname mismatch',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_10, __pyx_kp_155) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":128
+ * 9: 'Certificate untrusted',
+ * 10: 'Certificate expired',
+ * 11: 'Certificate not activated', # <<<<<<<<<<<<<<
+ * 12: 'Certificate hostname mismatch',
+ * 13: 'Certificate fingerprint mismatch',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_11, __pyx_kp_156) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":129
+ * 10: 'Certificate expired',
+ * 11: 'Certificate not activated',
+ * 12: 'Certificate hostname mismatch', # <<<<<<<<<<<<<<
+ * 13: 'Certificate fingerprint mismatch',
+ * 14: 'Certificate self signed',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_12, __pyx_kp_157) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":130
+ * 11: 'Certificate not activated',
+ * 12: 'Certificate hostname mismatch',
+ * 13: 'Certificate fingerprint mismatch', # <<<<<<<<<<<<<<
+ * 14: 'Certificate self signed',
+ * 15: 'Certificate error (other)',
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_13, __pyx_kp_158) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":131
+ * 12: 'Certificate hostname mismatch',
+ * 13: 'Certificate fingerprint mismatch',
+ * 14: 'Certificate self signed', # <<<<<<<<<<<<<<
+ * 15: 'Certificate error (other)',
+ * 16: 'Other error' }[reason]
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_14, __pyx_kp_159) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":132
+ * 13: 'Certificate fingerprint mismatch',
+ * 14: 'Certificate self signed',
+ * 15: 'Certificate error (other)', # <<<<<<<<<<<<<<
+ * 16: 'Other error' }[reason]
+ *
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_15, __pyx_kp_160) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":133
+ * 14: 'Certificate self signed',
+ * 15: 'Certificate error (other)',
+ * 16: 'Other error' }[reason] # <<<<<<<<<<<<<<
+ *
+ * if c_text:
+ */
+ if (PyDict_SetItem(__pyx_1, __pyx_int_16, __pyx_kp_161) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyInt_FromLong(__pyx_v_reason); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetItem(((PyObject *)__pyx_1), __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_reason_string);
+ __pyx_v_reason_string = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":135
+ * 16: 'Other error' }[reason]
+ *
+ * if c_text: # <<<<<<<<<<<<<<
+ * text = <char *> c_text
+ * else:
+ */
+ __pyx_4 = (__pyx_v_c_text != 0);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":136
+ *
+ * if c_text:
+ * text = <char *> c_text # <<<<<<<<<<<<<<
+ * else:
+ * text = None
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_text)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_text);
+ __pyx_v_text = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":138
+ * text = <char *> c_text
+ * else:
+ * text = None # <<<<<<<<<<<<<<
+ *
+ * if connection_cbs.has_key("report-disconnect-reason"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_text);
+ __pyx_v_text = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":140
+ * text = None
+ *
+ * if connection_cbs.has_key("report-disconnect-reason"): # <<<<<<<<<<<<<<
+ * (<object> connection_cbs["report-disconnect-reason"])(reason_string, <char *> text)
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_162);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_162);
+ __pyx_2 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":141
+ *
+ * if connection_cbs.has_key("report-disconnect-reason"):
+ * (<object> connection_cbs["report-disconnect-reason"])(reason_string, <char *> text) # <<<<<<<<<<<<<<
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_3, __pyx_kp_163); if (!__pyx_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_5 = __Pyx_PyBytes_AsString(__pyx_v_text); if (unlikely((!__pyx_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_5)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_reason_string);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_reason_string);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.report_disconnect_reason");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_reason_string);
+ Py_DECREF(__pyx_v_text);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":29
+ * conversation_cbs = {}
+ *
+ * cdef void create_conversation(conversation.PurpleConversation *conv): # <<<<<<<<<<<<<<
+ * """
+ * Called when a conv is created (but before the conversation-created
+ */
+
+static void __pyx_f_6purple_create_conversation(PurpleConversation *__pyx_v_conv) {
+ char *__pyx_v_c_name;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_type;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_type = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":34
+ * signal is emitted).
+ * """
+ * debug.purple_debug_info("conversation", "%s", "create-conversation\n") # <<<<<<<<<<<<<<
+ * cdef char *c_name = NULL
+ *
+ */
+ purple_debug_info(__pyx_k_164, __pyx_k_165, __pyx_k_166);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":35
+ * """
+ * debug.purple_debug_info("conversation", "%s", "create-conversation\n")
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> conversation.purple_conversation_get_name(conv)
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":37
+ * cdef char *c_name = NULL
+ *
+ * c_name = <char *> conversation.purple_conversation_get_name(conv) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_conversation_get_name(__pyx_v_conv));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":38
+ *
+ * c_name = <char *> conversation.purple_conversation_get_name(conv)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":39
+ * c_name = <char *> conversation.purple_conversation_get_name(conv)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":41
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * type = conversation.purple_conversation_get_type(conv)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":43
+ * name = c_name
+ *
+ * type = conversation.purple_conversation_get_type(conv) # <<<<<<<<<<<<<<
+ *
+ * if conversation_cbs.has_key("create-conversation"):
+ */
+ __pyx_2 = PyInt_FromLong(purple_conversation_get_type(__pyx_v_conv)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_type);
+ __pyx_v_type = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":45
+ * type = conversation.purple_conversation_get_type(conv)
+ *
+ * if conversation_cbs.has_key("create-conversation"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["create-conversation"])(name, type)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_167);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_167);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":46
+ *
+ * if conversation_cbs.has_key("create-conversation"):
+ * (<object> conversation_cbs["create-conversation"])(name, type) # <<<<<<<<<<<<<<
+ *
+ * cdef void destroy_conversation(conversation.PurpleConversation *conv):
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_168); if (!__pyx_2) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_name);
+ Py_INCREF(__pyx_v_type);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_type);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.create_conversation");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_type);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":48
+ * (<object> conversation_cbs["create-conversation"])(name, type)
+ *
+ * cdef void destroy_conversation(conversation.PurpleConversation *conv): # <<<<<<<<<<<<<<
+ * """
+ * Called just before a conv is freed.
+ */
+
+static void __pyx_f_6purple_destroy_conversation(PurpleConversation *__pyx_v_conv) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":52
+ * Called just before a conv is freed.
+ * """
+ * debug.purple_debug_info("conversation", "%s", "destroy-conversation\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("destroy-conversation"):
+ * (<object> conversation_cbs["destroy-conversation"])("destroy-conversation: TODO")
+ */
+ purple_debug_info(__pyx_k_169, __pyx_k_170, __pyx_k_171);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":53
+ * """
+ * debug.purple_debug_info("conversation", "%s", "destroy-conversation\n")
+ * if conversation_cbs.has_key("destroy-conversation"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["destroy-conversation"])("destroy-conversation: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_172);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_172);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":54
+ * debug.purple_debug_info("conversation", "%s", "destroy-conversation\n")
+ * if conversation_cbs.has_key("destroy-conversation"):
+ * (<object> conversation_cbs["destroy-conversation"])("destroy-conversation: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void write_chat(conversation.PurpleConversation *conv, const_char *who, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_173); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_174);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_174);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.destroy_conversation");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":56
+ * (<object> conversation_cbs["destroy-conversation"])("destroy-conversation: TODO")
+ *
+ * cdef void write_chat(conversation.PurpleConversation *conv, const_char *who, \ # <<<<<<<<<<<<<<
+ * const_char *message, conversation.PurpleMessageFlags flags, \
+ * time_t mtime):
+ */
+
+static void __pyx_f_6purple_write_chat(PurpleConversation *__pyx_v_conv, const char *__pyx_v_who, const char *__pyx_v_message, PurpleMessageFlags __pyx_v_flags, time_t __pyx_v_mtime) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":64
+ * @see purple_conv_chat_write()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-chat\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("write-chat"):
+ * (<object> conversation_cbs["write-chat"])("write-chat: TODO")
+ */
+ purple_debug_info(__pyx_k_175, __pyx_k_176, __pyx_k_177);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":65
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-chat\n")
+ * if conversation_cbs.has_key("write-chat"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["write-chat"])("write-chat: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_178);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_178);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":66
+ * debug.purple_debug_info("conversation", "%s", "write-chat\n")
+ * if conversation_cbs.has_key("write-chat"):
+ * (<object> conversation_cbs["write-chat"])("write-chat: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void write_im(conversation.PurpleConversation *conv, const_char *who, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_179); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_180);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_180);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.write_chat");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":68
+ * (<object> conversation_cbs["write-chat"])("write-chat: TODO")
+ *
+ * cdef void write_im(conversation.PurpleConversation *conv, const_char *who, \ # <<<<<<<<<<<<<<
+ * const_char *c_message, conversation.PurpleMessageFlags flags, \
+ * time_t mtime):
+ */
+
+static void __pyx_f_6purple_write_im(PurpleConversation *__pyx_v_conv, const char *__pyx_v_who, const char *__pyx_v_c_message, PurpleMessageFlags __pyx_v_flags, time_t __pyx_v_mtime) {
+ PurpleAccount *__pyx_v_acc;
+ PurpleBuddy *__pyx_v_buddy;
+ char *__pyx_v_c_username;
+ char *__pyx_v_c_sender_alias;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_sender;
+ PyObject *__pyx_v_sender_alias;
+ PyObject *__pyx_v_message;
+ PyObject *__pyx_v_flag;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ PyObject *__pyx_5 = 0;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_sender = Py_None; Py_INCREF(Py_None);
+ __pyx_v_sender_alias = Py_None; Py_INCREF(Py_None);
+ __pyx_v_message = Py_None; Py_INCREF(Py_None);
+ __pyx_v_flag = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":76
+ * @see purple_conv_im_write()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-im\n") # <<<<<<<<<<<<<<
+ * cdef account.PurpleAccount *acc = conversation.purple_conversation_get_account(conv)
+ * cdef blist.PurpleBuddy *buddy = NULL
+ */
+ purple_debug_info(__pyx_k_181, __pyx_k_182, __pyx_k_183);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":77
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-im\n")
+ * cdef account.PurpleAccount *acc = conversation.purple_conversation_get_account(conv) # <<<<<<<<<<<<<<
+ * cdef blist.PurpleBuddy *buddy = NULL
+ * cdef char *c_username = NULL
+ */
+ __pyx_v_acc = purple_conversation_get_account(__pyx_v_conv);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":78
+ * debug.purple_debug_info("conversation", "%s", "write-im\n")
+ * cdef account.PurpleAccount *acc = conversation.purple_conversation_get_account(conv)
+ * cdef blist.PurpleBuddy *buddy = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_username = NULL
+ * cdef char *c_sender_alias = NULL
+ */
+ __pyx_v_buddy = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":79
+ * cdef account.PurpleAccount *acc = conversation.purple_conversation_get_account(conv)
+ * cdef blist.PurpleBuddy *buddy = NULL
+ * cdef char *c_username = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_sender_alias = NULL
+ *
+ */
+ __pyx_v_c_username = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":80
+ * cdef blist.PurpleBuddy *buddy = NULL
+ * cdef char *c_username = NULL
+ * cdef char *c_sender_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ */
+ __pyx_v_c_sender_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":82
+ * cdef char *c_sender_alias = NULL
+ *
+ * c_username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * if c_username:
+ * username = c_username
+ */
+ __pyx_v_c_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":83
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username: # <<<<<<<<<<<<<<
+ * username = c_username
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_username != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":84
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username:
+ * username = c_username # <<<<<<<<<<<<<<
+ * else:
+ * username = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":86
+ * username = c_username
+ * else:
+ * username = None # <<<<<<<<<<<<<<
+ *
+ * if who == NULL:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":88
+ * username = None
+ *
+ * if who == NULL: # <<<<<<<<<<<<<<
+ * who = conversation.purple_conversation_get_name(conv)
+ *
+ */
+ __pyx_1 = (__pyx_v_who == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":89
+ *
+ * if who == NULL:
+ * who = conversation.purple_conversation_get_name(conv) # <<<<<<<<<<<<<<
+ *
+ * sender = <char *> who
+ */
+ __pyx_v_who = purple_conversation_get_name(__pyx_v_conv);
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":91
+ * who = conversation.purple_conversation_get_name(conv)
+ *
+ * sender = <char *> who # <<<<<<<<<<<<<<
+ * buddy = blist.purple_find_buddy(acc, <char *> who)
+ * if buddy:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_who)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_sender);
+ __pyx_v_sender = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":92
+ *
+ * sender = <char *> who
+ * buddy = blist.purple_find_buddy(acc, <char *> who) # <<<<<<<<<<<<<<
+ * if buddy:
+ * c_sender_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ */
+ __pyx_v_buddy = purple_find_buddy(__pyx_v_acc, ((char *)__pyx_v_who));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":93
+ * sender = <char *> who
+ * buddy = blist.purple_find_buddy(acc, <char *> who)
+ * if buddy: # <<<<<<<<<<<<<<
+ * c_sender_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ *
+ */
+ __pyx_1 = (__pyx_v_buddy != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":94
+ * buddy = blist.purple_find_buddy(acc, <char *> who)
+ * if buddy:
+ * c_sender_alias = <char *> blist.purple_buddy_get_alias_only(buddy) # <<<<<<<<<<<<<<
+ *
+ * if c_sender_alias:
+ */
+ __pyx_v_c_sender_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":96
+ * c_sender_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ *
+ * if c_sender_alias: # <<<<<<<<<<<<<<
+ * sender_alias = unicode(c_sender_alias, 'utf-8')
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_sender_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":97
+ *
+ * if c_sender_alias:
+ * sender_alias = unicode(c_sender_alias, 'utf-8') # <<<<<<<<<<<<<<
+ * else:
+ * sender_alias = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_sender_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ Py_INCREF(__pyx_kp_184);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_kp_184);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyUnicode_Type)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_sender_alias);
+ __pyx_v_sender_alias = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":99
+ * sender_alias = unicode(c_sender_alias, 'utf-8')
+ * else:
+ * sender_alias = None # <<<<<<<<<<<<<<
+ *
+ * if c_message:
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_sender_alias);
+ __pyx_v_sender_alias = Py_None;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":101
+ * sender_alias = None
+ *
+ * if c_message: # <<<<<<<<<<<<<<
+ * message = <char *> c_message
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_message != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":102
+ *
+ * if c_message:
+ * message = <char *> c_message # <<<<<<<<<<<<<<
+ * else:
+ * message = None
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_message)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L7;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":104
+ * message = <char *> c_message
+ * else:
+ * message = None # <<<<<<<<<<<<<<
+ *
+ * # FIXME: Maybe we need add more purple flags in the future
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = Py_None;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":107
+ *
+ * # FIXME: Maybe we need add more purple flags in the future
+ * if flags & conversation.PURPLE_MESSAGE_SEND: # <<<<<<<<<<<<<<
+ * flag = "SEND"
+ * else:
+ */
+ __pyx_4 = (__pyx_v_flags & PURPLE_MESSAGE_SEND);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":108
+ * # FIXME: Maybe we need add more purple flags in the future
+ * if flags & conversation.PURPLE_MESSAGE_SEND:
+ * flag = "SEND" # <<<<<<<<<<<<<<
+ * else:
+ * flag = "RECV"
+ */
+ Py_INCREF(__pyx_kp_185);
+ Py_DECREF(__pyx_v_flag);
+ __pyx_v_flag = __pyx_kp_185;
+ goto __pyx_L8;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":110
+ * flag = "SEND"
+ * else:
+ * flag = "RECV" # <<<<<<<<<<<<<<
+ *
+ * if conversation_cbs.has_key("write-im"):
+ */
+ Py_INCREF(__pyx_kp_186);
+ Py_DECREF(__pyx_v_flag);
+ __pyx_v_flag = __pyx_kp_186;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":112
+ * flag = "RECV"
+ *
+ * if conversation_cbs.has_key("write-im"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["write-im"])(username, sender, \
+ * sender_alias, message, flag)
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_187);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_187);
+ __pyx_5 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":113
+ *
+ * if conversation_cbs.has_key("write-im"):
+ * (<object> conversation_cbs["write-im"])(username, sender, \ # <<<<<<<<<<<<<<
+ * sender_alias, message, flag)
+ *
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_188); if (!__pyx_2) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":114
+ * if conversation_cbs.has_key("write-im"):
+ * (<object> conversation_cbs["write-im"])(username, sender, \
+ * sender_alias, message, flag) # <<<<<<<<<<<<<<
+ *
+ * cdef void write_conv(conversation.PurpleConversation *conv, const_char *name, \
+ */
+ __pyx_5 = PyTuple_New(5); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_sender);
+ PyTuple_SET_ITEM(__pyx_5, 1, __pyx_v_sender);
+ Py_INCREF(__pyx_v_sender_alias);
+ PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_sender_alias);
+ Py_INCREF(__pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_5, 3, __pyx_v_message);
+ Py_INCREF(__pyx_v_flag);
+ PyTuple_SET_ITEM(__pyx_5, 4, __pyx_v_flag);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_5);
+ __Pyx_WriteUnraisable("purple.write_im");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_sender);
+ Py_DECREF(__pyx_v_sender_alias);
+ Py_DECREF(__pyx_v_message);
+ Py_DECREF(__pyx_v_flag);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":116
+ * sender_alias, message, flag)
+ *
+ * cdef void write_conv(conversation.PurpleConversation *conv, const_char *name, \ # <<<<<<<<<<<<<<
+ * const_char *alias, const_char *message, \
+ * conversation.PurpleMessageFlags flags, time_t mtime):
+ */
+
+static void __pyx_f_6purple_write_conv(PurpleConversation *__pyx_v_conv, const char *__pyx_v_name, const char *__pyx_v_alias, const char *__pyx_v_message, PurpleMessageFlags __pyx_v_flags, time_t __pyx_v_mtime) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":127
+ * @see purple_conversation_write()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-conv\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("write-conv"):
+ * (<object> conversation_cbs["write-conv"])("write-conv: TODO")
+ */
+ purple_debug_info(__pyx_k_189, __pyx_k_190, __pyx_k_191);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":128
+ * """
+ * debug.purple_debug_info("conversation", "%s", "write-conv\n")
+ * if conversation_cbs.has_key("write-conv"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["write-conv"])("write-conv: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_192);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_192);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":129
+ * debug.purple_debug_info("conversation", "%s", "write-conv\n")
+ * if conversation_cbs.has_key("write-conv"):
+ * (<object> conversation_cbs["write-conv"])("write-conv: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void chat_add_users(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_193); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_194);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_194);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.write_conv");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":131
+ * (<object> conversation_cbs["write-conv"])("write-conv: TODO")
+ *
+ * cdef void chat_add_users(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * glib.GList *cbuddies, glib.gboolean new_arrivals):
+ * """
+ */
+
+static void __pyx_f_6purple_chat_add_users(PurpleConversation *__pyx_v_conv, GList *__pyx_v_cbuddies, gboolean __pyx_v_new_arrivals) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":141
+ * @see purple_conv_chat_add_users()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-add-users\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("chat-add-users"):
+ * (<object> conversation_cbs["chat-add-users"])("chat-add-users: TODO")
+ */
+ purple_debug_info(__pyx_k_195, __pyx_k_196, __pyx_k_197);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":142
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-add-users\n")
+ * if conversation_cbs.has_key("chat-add-users"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["chat-add-users"])("chat-add-users: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_198);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_198);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":143
+ * debug.purple_debug_info("conversation", "%s", "chat-add-users\n")
+ * if conversation_cbs.has_key("chat-add-users"):
+ * (<object> conversation_cbs["chat-add-users"])("chat-add-users: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void chat_rename_user(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_199); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_200);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_200);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.chat_add_users");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":145
+ * (<object> conversation_cbs["chat-add-users"])("chat-add-users: TODO")
+ *
+ * cdef void chat_rename_user(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *old_name, const_char *new_name,
+ * const_char *new_alias):
+ */
+
+static void __pyx_f_6purple_chat_rename_user(PurpleConversation *__pyx_v_conv, const char *__pyx_v_old_name, const char *__pyx_v_new_name, const char *__pyx_v_new_alias) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":154
+ * @see purple_conv_chat_rename_user()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-rename-user\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("chat-rename-user"):
+ * (<object> conversation_cbs["chat-rename-user"])("chat-rename-user: TODO")
+ */
+ purple_debug_info(__pyx_k_201, __pyx_k_202, __pyx_k_203);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":155
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-rename-user\n")
+ * if conversation_cbs.has_key("chat-rename-user"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["chat-rename-user"])("chat-rename-user: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_204);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_204);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":156
+ * debug.purple_debug_info("conversation", "%s", "chat-rename-user\n")
+ * if conversation_cbs.has_key("chat-rename-user"):
+ * (<object> conversation_cbs["chat-rename-user"])("chat-rename-user: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void chat_remove_users(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_205); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_206);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_206);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.chat_rename_user");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":158
+ * (<object> conversation_cbs["chat-rename-user"])("chat-rename-user: TODO")
+ *
+ * cdef void chat_remove_users(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * glib.GList *users):
+ * """
+ */
+
+static void __pyx_f_6purple_chat_remove_users(PurpleConversation *__pyx_v_conv, GList *__pyx_v_users) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":164
+ * @param users A GList of const char *s.
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-remove-users\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("chat-remove-users"):
+ * (<object> conversation_cbs["chat-remove-users"])("chat-remove-users: TODO")
+ */
+ purple_debug_info(__pyx_k_207, __pyx_k_208, __pyx_k_209);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":165
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-remove-users\n")
+ * if conversation_cbs.has_key("chat-remove-users"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["chat-remove-users"])("chat-remove-users: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_210);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_210);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":166
+ * debug.purple_debug_info("conversation", "%s", "chat-remove-users\n")
+ * if conversation_cbs.has_key("chat-remove-users"):
+ * (<object> conversation_cbs["chat-remove-users"])("chat-remove-users: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void chat_update_user(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_211); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_212);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_212);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.chat_remove_users");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":168
+ * (<object> conversation_cbs["chat-remove-users"])("chat-remove-users: TODO")
+ *
+ * cdef void chat_update_user(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *user):
+ * """
+ */
+
+static void __pyx_f_6purple_chat_update_user(PurpleConversation *__pyx_v_conv, const char *__pyx_v_user) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":174
+ * @see purple_conv_chat_user_set_flags()
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-update-user\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("chat-update-user"):
+ * (<object> conversation_cbs["chat-update-user"])("chat-update-user: TODO")
+ */
+ purple_debug_info(__pyx_k_213, __pyx_k_214, __pyx_k_215);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":175
+ * """
+ * debug.purple_debug_info("conversation", "%s", "chat-update-user\n")
+ * if conversation_cbs.has_key("chat-update-user"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["chat-update-user"])("chat-update-user: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_216);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_216);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":176
+ * debug.purple_debug_info("conversation", "%s", "chat-update-user\n")
+ * if conversation_cbs.has_key("chat-update-user"):
+ * (<object> conversation_cbs["chat-update-user"])("chat-update-user: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void present(conversation.PurpleConversation *conv):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_217); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_218);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_218);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.chat_update_user");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":178
+ * (<object> conversation_cbs["chat-update-user"])("chat-update-user: TODO")
+ *
+ * cdef void present(conversation.PurpleConversation *conv): # <<<<<<<<<<<<<<
+ * """
+ * Present this conversation to the user; for example, by displaying the IM
+ */
+
+static void __pyx_f_6purple_present(PurpleConversation *__pyx_v_conv) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":183
+ * dialog.
+ * """
+ * debug.purple_debug_info("conversation", "%s", "present\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("present"):
+ * (<object> conversation_cbs["present"])("present: TODO")
+ */
+ purple_debug_info(__pyx_k_219, __pyx_k_220, __pyx_k_221);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":184
+ * """
+ * debug.purple_debug_info("conversation", "%s", "present\n")
+ * if conversation_cbs.has_key("present"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["present"])("present: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_222);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_222);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":185
+ * debug.purple_debug_info("conversation", "%s", "present\n")
+ * if conversation_cbs.has_key("present"):
+ * (<object> conversation_cbs["present"])("present: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef glib.gboolean has_focus(conversation.PurpleConversation *conv):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_223); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_224);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_224);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.present");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":187
+ * (<object> conversation_cbs["present"])("present: TODO")
+ *
+ * cdef glib.gboolean has_focus(conversation.PurpleConversation *conv): # <<<<<<<<<<<<<<
+ * """
+ * If this UI has a concept of focus (as in a windowing system) and this
+ */
+
+static gboolean __pyx_f_6purple_has_focus(PurpleConversation *__pyx_v_conv) {
+ gboolean __pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":192
+ * conversation has the focus, return TRUE; otherwise, return FALSE.
+ * """
+ * debug.purple_debug_info("conversation", "%s", "has-focus\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("has-focus"):
+ * (<object> conversation_cbs["has-focus"])("has-focus: TODO")
+ */
+ purple_debug_info(__pyx_k_225, __pyx_k_226, __pyx_k_227);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":193
+ * """
+ * debug.purple_debug_info("conversation", "%s", "has-focus\n")
+ * if conversation_cbs.has_key("has-focus"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["has-focus"])("has-focus: TODO")
+ * return False
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_228);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_228);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":194
+ * debug.purple_debug_info("conversation", "%s", "has-focus\n")
+ * if conversation_cbs.has_key("has-focus"):
+ * (<object> conversation_cbs["has-focus"])("has-focus: TODO") # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_229); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_230);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_230);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":195
+ * if conversation_cbs.has_key("has-focus"):
+ * (<object> conversation_cbs["has-focus"])("has-focus: TODO")
+ * return False # <<<<<<<<<<<<<<
+ *
+ * cdef glib.gboolean custom_smiley_add(conversation.PurpleConversation *conv, \
+ */
+ __pyx_r = 0;
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.has_focus");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":197
+ * return False
+ *
+ * cdef glib.gboolean custom_smiley_add(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *smile, glib.gboolean remote):
+ * """
+ */
+
+static gboolean __pyx_f_6purple_custom_smiley_add(PurpleConversation *__pyx_v_conv, const char *__pyx_v_smile, gboolean __pyx_v_remote) {
+ gboolean __pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":202
+ * Custom smileys (add).
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-add\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("custom-smiley-add"):
+ * (<object> conversation_cbs["custom-smiley-add"])("custom-smiley-add: TODO")
+ */
+ purple_debug_info(__pyx_k_231, __pyx_k_232, __pyx_k_233);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":203
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-add\n")
+ * if conversation_cbs.has_key("custom-smiley-add"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["custom-smiley-add"])("custom-smiley-add: TODO")
+ * return False
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_234);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_234);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":204
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-add\n")
+ * if conversation_cbs.has_key("custom-smiley-add"):
+ * (<object> conversation_cbs["custom-smiley-add"])("custom-smiley-add: TODO") # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_235); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_236);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_236);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":205
+ * if conversation_cbs.has_key("custom-smiley-add"):
+ * (<object> conversation_cbs["custom-smiley-add"])("custom-smiley-add: TODO")
+ * return False # <<<<<<<<<<<<<<
+ *
+ * cdef void custom_smiley_write(conversation.PurpleConversation *conv, \
+ */
+ __pyx_r = 0;
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.custom_smiley_add");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":207
+ * return False
+ *
+ * cdef void custom_smiley_write(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *smile, const_guchar *data, glib.gsize size):
+ * """
+ */
+
+static void __pyx_f_6purple_custom_smiley_write(PurpleConversation *__pyx_v_conv, const char *__pyx_v_smile, const guchar *__pyx_v_data, gsize __pyx_v_size) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":212
+ * Custom smileys (write).
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-write\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("custom-smiley-write"):
+ * (<object> conversation_cbs["custom-smiley-write"])("custom-smiley-write: TODO")
+ */
+ purple_debug_info(__pyx_k_237, __pyx_k_238, __pyx_k_239);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":213
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-write\n")
+ * if conversation_cbs.has_key("custom-smiley-write"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["custom-smiley-write"])("custom-smiley-write: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_240);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_240);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":214
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-write\n")
+ * if conversation_cbs.has_key("custom-smiley-write"):
+ * (<object> conversation_cbs["custom-smiley-write"])("custom-smiley-write: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void custom_smiley_close(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_241); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_242);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_242);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.custom_smiley_write");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":216
+ * (<object> conversation_cbs["custom-smiley-write"])("custom-smiley-write: TODO")
+ *
+ * cdef void custom_smiley_close(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *smile):
+ * """
+ */
+
+static void __pyx_f_6purple_custom_smiley_close(PurpleConversation *__pyx_v_conv, const char *__pyx_v_smile) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":221
+ * Custom smileys (close).
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-close\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("custom-smiley-close"):
+ * (<object> conversation_cbs["custom-smiley-close"])("custom-smiley-close: TODO")
+ */
+ purple_debug_info(__pyx_k_243, __pyx_k_244, __pyx_k_245);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":222
+ * """
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-close\n")
+ * if conversation_cbs.has_key("custom-smiley-close"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["custom-smiley-close"])("custom-smiley-close: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_246);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_246);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":223
+ * debug.purple_debug_info("conversation", "%s", "custom-smiley-close\n")
+ * if conversation_cbs.has_key("custom-smiley-close"):
+ * (<object> conversation_cbs["custom-smiley-close"])("custom-smiley-close: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void send_confirm(conversation.PurpleConversation *conv, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_247); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_248);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_248);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.custom_smiley_close");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":225
+ * (<object> conversation_cbs["custom-smiley-close"])("custom-smiley-close: TODO")
+ *
+ * cdef void send_confirm(conversation.PurpleConversation *conv, \ # <<<<<<<<<<<<<<
+ * const_char *message):
+ * """
+ */
+
+static void __pyx_f_6purple_send_confirm(PurpleConversation *__pyx_v_conv, const char *__pyx_v_message) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":232
+ * is NULL, libpurple will fall back to using purple_request_action().
+ * """
+ * debug.purple_debug_info("conversation", "%s", "send-confirm\n") # <<<<<<<<<<<<<<
+ * if conversation_cbs.has_key("send-confirm"):
+ * (<object> conversation_cbs["send-confirm"])("send-confirm: TODO")
+ */
+ purple_debug_info(__pyx_k_249, __pyx_k_250, __pyx_k_251);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":233
+ * """
+ * debug.purple_debug_info("conversation", "%s", "send-confirm\n")
+ * if conversation_cbs.has_key("send-confirm"): # <<<<<<<<<<<<<<
+ * (<object> conversation_cbs["send-confirm"])("send-confirm: TODO")
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_252);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_252);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":234
+ * debug.purple_debug_info("conversation", "%s", "send-confirm\n")
+ * if conversation_cbs.has_key("send-confirm"):
+ * (<object> conversation_cbs["send-confirm"])("send-confirm: TODO") # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_253); if (!__pyx_1) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_254);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_254);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.send_confirm");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":28
+ * notify_cbs = {}
+ *
+ * cdef void *notify_message(notify.PurpleNotifyMsgType type, \ # <<<<<<<<<<<<<<
+ * const_char *title, const_char *primary, const_char *secondary):
+ * """
+ */
+
+static void *__pyx_f_6purple_notify_message(PurpleNotifyMsgType __pyx_v_type, const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":33
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-message\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notif-message"):
+ * (<object> notify_cbs["notify-message"])("notify-message: TODO")
+ */
+ purple_debug_info(__pyx_k_255, __pyx_k_256, __pyx_k_257);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":34
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-message\n")
+ * if notify_cbs.has_key("notif-message"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-message"])("notify-message: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_258);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_258);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":35
+ * debug.purple_debug_info("notify", "%s", "notify-message\n")
+ * if notify_cbs.has_key("notif-message"):
+ * (<object> notify_cbs["notify-message"])("notify-message: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_email(connection.PurpleConnection *gc, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_259); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_260);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_260);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_message");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":37
+ * (<object> notify_cbs["notify-message"])("notify-message: TODO")
+ *
+ * cdef void *notify_email(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * const_char *subject, const_char *_from, const_char *to, \
+ * const_char *url):
+ */
+
+static void *__pyx_f_6purple_notify_email(PurpleConnection *__pyx_v_gc, const char *__pyx_v_subject, const char *__pyx_v__from, const char *__pyx_v_to, const char *__pyx_v_url) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":43
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-email\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-email"):
+ * (<object> notify_cbs["notify-email"])("notify-email: TODO")
+ */
+ purple_debug_info(__pyx_k_261, __pyx_k_262, __pyx_k_263);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":44
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-email\n")
+ * if notify_cbs.has_key("notify-email"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-email"])("notify-email: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_264);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_264);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":45
+ * debug.purple_debug_info("notify", "%s", "notify-email\n")
+ * if notify_cbs.has_key("notify-email"):
+ * (<object> notify_cbs["notify-email"])("notify-email: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_emails(connection.PurpleConnection *gc, size_t count, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_265); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_266);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_266);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_email");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":47
+ * (<object> notify_cbs["notify-email"])("notify-email: TODO")
+ *
+ * cdef void *notify_emails(connection.PurpleConnection *gc, size_t count, \ # <<<<<<<<<<<<<<
+ * glib.gboolean detailed, const_char **subjects, \
+ * const_char **froms, const_char **tos, const_char **urls):
+ */
+
+static void *__pyx_f_6purple_notify_emails(PurpleConnection *__pyx_v_gc, size_t __pyx_v_count, gboolean __pyx_v_detailed, const char **__pyx_v_subjects, const char **__pyx_v_froms, const char **__pyx_v_tos, const char **__pyx_v_urls) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":53
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-emails\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-emails"):
+ * (<object> notify_cbs["notify-emails"])("notify-emails: TODO")
+ */
+ purple_debug_info(__pyx_k_267, __pyx_k_268, __pyx_k_269);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":54
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-emails\n")
+ * if notify_cbs.has_key("notify-emails"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-emails"])("notify-emails: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_270);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_270);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":55
+ * debug.purple_debug_info("notify", "%s", "notify-emails\n")
+ * if notify_cbs.has_key("notify-emails"):
+ * (<object> notify_cbs["notify-emails"])("notify-emails: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_formatted(const_char *title, const_char *primary, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_271); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_272);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_272);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_emails");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":57
+ * (<object> notify_cbs["notify-emails"])("notify-emails: TODO")
+ *
+ * cdef void *notify_formatted(const_char *title, const_char *primary, \ # <<<<<<<<<<<<<<
+ * const_char *secondary, const_char *text):
+ * """
+ */
+
+static void *__pyx_f_6purple_notify_formatted(const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, const char *__pyx_v_text) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":62
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-formatted\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-formatted"):
+ * (<object> notify_cbs["notify-formatted"])("notify-formatted: TODO")
+ */
+ purple_debug_info(__pyx_k_273, __pyx_k_274, __pyx_k_275);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":63
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-formatted\n")
+ * if notify_cbs.has_key("notify-formatted"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-formatted"])("notify-formatted: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_276);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_276);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":64
+ * debug.purple_debug_info("notify", "%s", "notify-formatted\n")
+ * if notify_cbs.has_key("notify-formatted"):
+ * (<object> notify_cbs["notify-formatted"])("notify-formatted: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_searchresults(connection.PurpleConnection *gc, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_277); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_278);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_278);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_formatted");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":66
+ * (<object> notify_cbs["notify-formatted"])("notify-formatted: TODO")
+ *
+ * cdef void *notify_searchresults(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * const_char *title, const_char *primary, const_char *secondary, \
+ * notify.PurpleNotifySearchResults *results, glib.gpointer user_data):
+ */
+
+static void *__pyx_f_6purple_notify_searchresults(PurpleConnection *__pyx_v_gc, const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, PurpleNotifySearchResults *__pyx_v_results, gpointer __pyx_v_user_data) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":72
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-searchresults"):
+ * (<object> notify_cbs["notify-searchresults"])("notify-searchresults: TODO")
+ */
+ purple_debug_info(__pyx_k_279, __pyx_k_280, __pyx_k_281);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":73
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults\n")
+ * if notify_cbs.has_key("notify-searchresults"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-searchresults"])("notify-searchresults: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_282);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_282);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":74
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults\n")
+ * if notify_cbs.has_key("notify-searchresults"):
+ * (<object> notify_cbs["notify-searchresults"])("notify-searchresults: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void notify_searchresults_new_rows(connection.PurpleConnection *gc, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_283); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_284);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_284);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_searchresults");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":76
+ * (<object> notify_cbs["notify-searchresults"])("notify-searchresults: TODO")
+ *
+ * cdef void notify_searchresults_new_rows(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * notify.PurpleNotifySearchResults *results, void *data):
+ * """
+ */
+
+static void __pyx_f_6purple_notify_searchresults_new_rows(PurpleConnection *__pyx_v_gc, PurpleNotifySearchResults *__pyx_v_results, void *__pyx_v_data) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":81
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults-new-rows\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-searchresults-new-rows"):
+ * (<object> notify_cbs["notify-searchresults-new-rows"])("notify-searchresults-new-rows: TODO")
+ */
+ purple_debug_info(__pyx_k_285, __pyx_k_286, __pyx_k_287);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":82
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults-new-rows\n")
+ * if notify_cbs.has_key("notify-searchresults-new-rows"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-searchresults-new-rows"])("notify-searchresults-new-rows: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_288);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_288);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":83
+ * debug.purple_debug_info("notify", "%s", "notify-searchresults-new-rows\n")
+ * if notify_cbs.has_key("notify-searchresults-new-rows"):
+ * (<object> notify_cbs["notify-searchresults-new-rows"])("notify-searchresults-new-rows: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_userinfo(connection.PurpleConnection *gc, const_char *who, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_289); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_290);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_290);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_searchresults_new_rows");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":85
+ * (<object> notify_cbs["notify-searchresults-new-rows"])("notify-searchresults-new-rows: TODO")
+ *
+ * cdef void *notify_userinfo(connection.PurpleConnection *gc, const_char *who, \ # <<<<<<<<<<<<<<
+ * notify.PurpleNotifyUserInfo *user_info):
+ * """
+ */
+
+static void *__pyx_f_6purple_notify_userinfo(PurpleConnection *__pyx_v_gc, const char *__pyx_v_who, PurpleNotifyUserInfo *__pyx_v_user_info) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":90
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-userinfo\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-userinfo"):
+ * (<object> notify_cbs["notify-userinfo"])("notify-userinfo: TODO")
+ */
+ purple_debug_info(__pyx_k_291, __pyx_k_292, __pyx_k_293);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":91
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-userinfo\n")
+ * if notify_cbs.has_key("notify-userinfo"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-userinfo"])("notify-userinfo: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_294);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_294);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":92
+ * debug.purple_debug_info("notify", "%s", "notify-userinfo\n")
+ * if notify_cbs.has_key("notify-userinfo"):
+ * (<object> notify_cbs["notify-userinfo"])("notify-userinfo: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_uri(const_char *uri):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_295); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_296);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_296);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_userinfo");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":94
+ * (<object> notify_cbs["notify-userinfo"])("notify-userinfo: TODO")
+ *
+ * cdef void *notify_uri(const_char *uri): # <<<<<<<<<<<<<<
+ * """
+ * TODO
+ */
+
+static void *__pyx_f_6purple_notify_uri(const char *__pyx_v_uri) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":98
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-uri\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("notify-uri"):
+ * (<object> notify_cbs["notify-uri"])("notify-uri: TODO")
+ */
+ purple_debug_info(__pyx_k_297, __pyx_k_298, __pyx_k_299);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":99
+ * """
+ * debug.purple_debug_info("notify", "%s", "notify-uri\n")
+ * if notify_cbs.has_key("notify-uri"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["notify-uri"])("notify-uri: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_300);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_300);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":100
+ * debug.purple_debug_info("notify", "%s", "notify-uri\n")
+ * if notify_cbs.has_key("notify-uri"):
+ * (<object> notify_cbs["notify-uri"])("notify-uri: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void close_notify(notify.PurpleNotifyType type, void *ui_handle):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_301); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_302);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_302);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.notify_uri");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":102
+ * (<object> notify_cbs["notify-uri"])("notify-uri: TODO")
+ *
+ * cdef void close_notify(notify.PurpleNotifyType type, void *ui_handle): # <<<<<<<<<<<<<<
+ * """
+ * TODO
+ */
+
+static void __pyx_f_6purple_close_notify(PurpleNotifyType __pyx_v_type, void *__pyx_v_ui_handle) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":106
+ * TODO
+ * """
+ * debug.purple_debug_info("notify", "%s", "close-notify\n") # <<<<<<<<<<<<<<
+ * if notify_cbs.has_key("close-notify"):
+ * (<object> notify_cbs["close-notify"])("close-notify: TODO")
+ */
+ purple_debug_info(__pyx_k_303, __pyx_k_304, __pyx_k_305);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":107
+ * """
+ * debug.purple_debug_info("notify", "%s", "close-notify\n")
+ * if notify_cbs.has_key("close-notify"): # <<<<<<<<<<<<<<
+ * (<object> notify_cbs["close-notify"])("close-notify: TODO")
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_306);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_306);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":108
+ * debug.purple_debug_info("notify", "%s", "close-notify\n")
+ * if notify_cbs.has_key("close-notify"):
+ * (<object> notify_cbs["close-notify"])("close-notify: TODO") # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_307); if (!__pyx_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_308);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_308);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.close_notify");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":29
+ * request_cbs = {}
+ *
+ * cdef void *request_input(const_char *title, const_char *primary, \ # <<<<<<<<<<<<<<
+ * const_char *secondary, const_char *default_value, \
+ * glib.gboolean multiline, glib.gboolean masked, glib.gchar *hint, \
+ */
+
+static void *__pyx_f_6purple_request_input(const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, const char *__pyx_v_default_value, gboolean __pyx_v_multiline, gboolean __pyx_v_masked, gchar *__pyx_v_hint, const char *__pyx_v_ok_text, GCallback __pyx_v_ok_cb, const char *__pyx_v_cancel_text, GCallback __pyx_v_cancel_cb, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":39
+ * @see purple_request_input().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-input\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-input"):
+ * (<object> request_cbs["request-input"])("request-input: TODO")
+ */
+ purple_debug_info(__pyx_k_309, __pyx_k_310, __pyx_k_311);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":40
+ * """
+ * debug.purple_debug_info("request", "%s", "request-input\n")
+ * if request_cbs.has_key("request-input"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-input"])("request-input: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_312);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_312);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":41
+ * debug.purple_debug_info("request", "%s", "request-input\n")
+ * if request_cbs.has_key("request-input"):
+ * (<object> request_cbs["request-input"])("request-input: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_choice(const_char *title, const_char *primary, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_313); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_314);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_314);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_input");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":43
+ * (<object> request_cbs["request-input"])("request-input: TODO")
+ *
+ * cdef void *request_choice(const_char *title, const_char *primary, \ # <<<<<<<<<<<<<<
+ * const_char *secondary, int default_value, const_char *ok_text, \
+ * glib.GCallback ok_cb, const_char *cancel_text, \
+ */
+
+static void *__pyx_f_6purple_request_choice(const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, int __pyx_v_default_value, const char *__pyx_v_ok_text, GCallback __pyx_v_ok_cb, const char *__pyx_v_cancel_text, GCallback __pyx_v_cancel_cb, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data, va_list __pyx_v_choices) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":52
+ * @see purple_request_choice_varg().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-choice\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-choice"):
+ * (<object> request_cbs["request-choice"])("request-choice: TODO")
+ */
+ purple_debug_info(__pyx_k_315, __pyx_k_316, __pyx_k_317);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":53
+ * """
+ * debug.purple_debug_info("request", "%s", "request-choice\n")
+ * if request_cbs.has_key("request-choice"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-choice"])("request-choice: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_318);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_318);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":54
+ * debug.purple_debug_info("request", "%s", "request-choice\n")
+ * if request_cbs.has_key("request-choice"):
+ * (<object> request_cbs["request-choice"])("request-choice: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_action(const_char *title, const_char *primary, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_319); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_320);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_320);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_choice");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":56
+ * (<object> request_cbs["request-choice"])("request-choice: TODO")
+ *
+ * cdef void *request_action(const_char *title, const_char *primary, \ # <<<<<<<<<<<<<<
+ * const_char *secondary, int default_action, \
+ * account.PurpleAccount *account, const_char *who, \
+ */
+
+static void *__pyx_f_6purple_request_action(const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, int __pyx_v_default_action, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data, size_t __pyx_v_action_count, va_list __pyx_v_actions) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":64
+ * @see purple_request_action_varg().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-action\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-action"):
+ * (<object> request_cbs["request-action"])("request-action: TODo")
+ */
+ purple_debug_info(__pyx_k_321, __pyx_k_322, __pyx_k_323);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":65
+ * """
+ * debug.purple_debug_info("request", "%s", "request-action\n")
+ * if request_cbs.has_key("request-action"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-action"])("request-action: TODo")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_324);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_324);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":66
+ * debug.purple_debug_info("request", "%s", "request-action\n")
+ * if request_cbs.has_key("request-action"):
+ * (<object> request_cbs["request-action"])("request-action: TODo") # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_fields(const_char *title, const_char *primary, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_325); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_326);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_326);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_action");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":68
+ * (<object> request_cbs["request-action"])("request-action: TODo")
+ *
+ * cdef void *request_fields(const_char *title, const_char *primary, \ # <<<<<<<<<<<<<<
+ * const_char *secondary, request.PurpleRequestFields *fields, \
+ * const_char *ok_text, glib.GCallback ok_cb, const_char *cancel_text, \
+ */
+
+static void *__pyx_f_6purple_request_fields(const char *__pyx_v_title, const char *__pyx_v_primary, const char *__pyx_v_secondary, PurpleRequestFields *__pyx_v_fields, const char *__pyx_v_ok_text, GCallback __pyx_v_ok_cb, const char *__pyx_v_cancel_text, GCallback __pyx_v_cancel_cb, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":77
+ * @see purple_request_fields().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-fields\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-fields"):
+ * (<object> request_cbs["request-fields"])("request-fields: TODO")
+ */
+ purple_debug_info(__pyx_k_327, __pyx_k_328, __pyx_k_329);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":78
+ * """
+ * debug.purple_debug_info("request", "%s", "request-fields\n")
+ * if request_cbs.has_key("request-fields"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-fields"])("request-fields: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_330);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_330);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":79
+ * debug.purple_debug_info("request", "%s", "request-fields\n")
+ * if request_cbs.has_key("request-fields"):
+ * (<object> request_cbs["request-fields"])("request-fields: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_file(const_char *title, const_char *filename, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_331); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_332);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_332);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_fields");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":81
+ * (<object> request_cbs["request-fields"])("request-fields: TODO")
+ *
+ * cdef void *request_file(const_char *title, const_char *filename, \ # <<<<<<<<<<<<<<
+ * glib.gboolean savedialog, glib.GCallback ok_cb, \
+ * glib.GCallback cancel_cb, account.PurpleAccount *account, \
+ */
+
+static void *__pyx_f_6purple_request_file(const char *__pyx_v_title, const char *__pyx_v_filename, gboolean __pyx_v_savedialog, GCallback __pyx_v_ok_cb, GCallback __pyx_v_cancel_cb, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":89
+ * @see purple_request_file().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-file\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-file"):
+ * (<object> request_cbs["request-file"])("request-file: TODO")
+ */
+ purple_debug_info(__pyx_k_333, __pyx_k_334, __pyx_k_335);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":90
+ * """
+ * debug.purple_debug_info("request", "%s", "request-file\n")
+ * if request_cbs.has_key("request-file"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-file"])("request-file: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_336);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_336);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":91
+ * debug.purple_debug_info("request", "%s", "request-file\n")
+ * if request_cbs.has_key("request-file"):
+ * (<object> request_cbs["request-file"])("request-file: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void close_request(request.PurpleRequestType type, void *ui_handle):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_337); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_338);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_338);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_file");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":93
+ * (<object> request_cbs["request-file"])("request-file: TODO")
+ *
+ * cdef void close_request(request.PurpleRequestType type, void *ui_handle): # <<<<<<<<<<<<<<
+ * """
+ * TODO
+ */
+
+static void __pyx_f_6purple_close_request(PurpleRequestType __pyx_v_type, void *__pyx_v_ui_handle) {
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":97
+ * TODO
+ * """
+ * debug.purple_debug_info("request", "%s", "close-request\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("close-request"):
+ * (<object> request_cbs["close-request"])("close-request: TODO")
+ */
+ purple_debug_info(__pyx_k_339, __pyx_k_340, __pyx_k_341);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":98
+ * """
+ * debug.purple_debug_info("request", "%s", "close-request\n")
+ * if request_cbs.has_key("close-request"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["close-request"])("close-request: TODO")
+ *
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_342);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_342);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":99
+ * debug.purple_debug_info("request", "%s", "close-request\n")
+ * if request_cbs.has_key("close-request"):
+ * (<object> request_cbs["close-request"])("close-request: TODO") # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_folder(const_char *title, const_char *dirname, \
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_343); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_344);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_344);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.close_request");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":101
+ * (<object> request_cbs["close-request"])("close-request: TODO")
+ *
+ * cdef void *request_folder(const_char *title, const_char *dirname, \ # <<<<<<<<<<<<<<
+ * glib.GCallback ok_cb, glib.GCallback cancel_cb, \
+ * account.PurpleAccount *account, const_char *who, \
+ */
+
+static void *__pyx_f_6purple_request_folder(const char *__pyx_v_title, const char *__pyx_v_dirname, GCallback __pyx_v_ok_cb, GCallback __pyx_v_cancel_cb, PurpleAccount *__pyx_v_account, const char *__pyx_v_who, PurpleConversation *__pyx_v_conv, void *__pyx_v_user_data) {
+ void *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":108
+ * @see purple_request_folder().
+ * """
+ * debug.purple_debug_info("request", "%s", "request-folder\n") # <<<<<<<<<<<<<<
+ * if request_cbs.has_key("request-folder"):
+ * (<object> request_cbs["request-folder"])("request-folder: TODO")
+ */
+ purple_debug_info(__pyx_k_345, __pyx_k_346, __pyx_k_347);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":109
+ * """
+ * debug.purple_debug_info("request", "%s", "request-folder\n")
+ * if request_cbs.has_key("request-folder"): # <<<<<<<<<<<<<<
+ * (<object> request_cbs["request-folder"])("request-folder: TODO")
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_348);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_348);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":110
+ * debug.purple_debug_info("request", "%s", "request-folder\n")
+ * if request_cbs.has_key("request-folder"):
+ * (<object> request_cbs["request-folder"])("request-folder: TODO") # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_349); if (!__pyx_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_350);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_350);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.request_folder");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":27
+ * ctypedef char const_gchar "const gchar"
+ *
+ * cdef void signal_signed_on_cb(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * glib.gpointer null):
+ * """
+ */
+
+static void __pyx_f_6purple_signal_signed_on_cb(PurpleConnection *__pyx_v_gc, gpointer __pyx_v_null) {
+ PurpleAccount *__pyx_v_acc;
+ char *__pyx_v_c_username;
+ char *__pyx_v_c_protocol_id;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":33
+ * @params gc The connection that has signed on.
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc) # <<<<<<<<<<<<<<
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL
+ */
+ __pyx_v_acc = purple_connection_get_account(__pyx_v_gc);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":34
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_protocol_id = NULL
+ *
+ */
+ __pyx_v_c_username = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":35
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL # <<<<<<<<<<<<<<
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ */
+ __pyx_v_c_protocol_id = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":37
+ * cdef char *c_protocol_id = NULL
+ *
+ * c_username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * if c_username == NULL:
+ * username = None
+ */
+ __pyx_v_c_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":38
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username == NULL: # <<<<<<<<<<<<<<
+ * username = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_username == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":39
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username == NULL:
+ * username = None # <<<<<<<<<<<<<<
+ * else:
+ * username = c_username
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":41
+ * username = None
+ * else:
+ * username = c_username # <<<<<<<<<<<<<<
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":43
+ * username = c_username
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc) # <<<<<<<<<<<<<<
+ * if c_protocol_id == NULL:
+ * protocol_id = None
+ */
+ __pyx_v_c_protocol_id = ((char *)purple_account_get_protocol_id(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":44
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id == NULL: # <<<<<<<<<<<<<<
+ * protocol_id = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_protocol_id == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":45
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id == NULL:
+ * protocol_id = None # <<<<<<<<<<<<<<
+ * else:
+ * protocol_id = c_protocol_id
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = Py_None;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":47
+ * protocol_id = None
+ * else:
+ * protocol_id = c_protocol_id # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("signed-on"):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_protocol_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":49
+ * protocol_id = c_protocol_id
+ *
+ * if signal_cbs.has_key("signed-on"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["signed-on"])(username, protocol_id)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_351);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_351);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":50
+ *
+ * if signal_cbs.has_key("signed-on"):
+ * (<object> signal_cbs["signed-on"])(username, protocol_id) # <<<<<<<<<<<<<<
+ *
+ * cdef void signal_signed_off_cb(connection.PurpleConnection *gc, \
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_352); if (!__pyx_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.signal_signed_on_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":52
+ * (<object> signal_cbs["signed-on"])(username, protocol_id)
+ *
+ * cdef void signal_signed_off_cb(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * glib.gpointer null):
+ * """
+ */
+
+static void __pyx_f_6purple_signal_signed_off_cb(PurpleConnection *__pyx_v_gc, gpointer __pyx_v_null) {
+ PurpleAccount *__pyx_v_acc;
+ char *__pyx_v_c_username;
+ char *__pyx_v_c_protocol_id;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":58
+ * @params gc The connection that has signed off.
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc) # <<<<<<<<<<<<<<
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL
+ */
+ __pyx_v_acc = purple_connection_get_account(__pyx_v_gc);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":59
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_protocol_id = NULL
+ *
+ */
+ __pyx_v_c_username = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":60
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL # <<<<<<<<<<<<<<
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ */
+ __pyx_v_c_protocol_id = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":62
+ * cdef char *c_protocol_id = NULL
+ *
+ * c_username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * if c_username == NULL:
+ * username = None
+ */
+ __pyx_v_c_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":63
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username == NULL: # <<<<<<<<<<<<<<
+ * username = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_username == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":64
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username == NULL:
+ * username = None # <<<<<<<<<<<<<<
+ * else:
+ * username = c_username
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":66
+ * username = None
+ * else:
+ * username = c_username # <<<<<<<<<<<<<<
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":68
+ * username = c_username
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc) # <<<<<<<<<<<<<<
+ * if c_protocol_id == NULL:
+ * protocol_id = None
+ */
+ __pyx_v_c_protocol_id = ((char *)purple_account_get_protocol_id(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":69
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id == NULL: # <<<<<<<<<<<<<<
+ * protocol_id = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_protocol_id == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":70
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id == NULL:
+ * protocol_id = None # <<<<<<<<<<<<<<
+ * else:
+ * protocol_id = c_protocol_id
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = Py_None;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":72
+ * protocol_id = None
+ * else:
+ * protocol_id = c_protocol_id # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("signed-off"):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_protocol_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":74
+ * protocol_id = c_protocol_id
+ *
+ * if signal_cbs.has_key("signed-off"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["signed-off"])(username, protocol_id)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_353);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_353);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":75
+ *
+ * if signal_cbs.has_key("signed-off"):
+ * (<object> signal_cbs["signed-off"])(username, protocol_id) # <<<<<<<<<<<<<<
+ *
+ * cdef void signal_connection_error_cb(connection.PurpleConnection *gc, \
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_354); if (!__pyx_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_protocol_id);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.signal_signed_off_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":77
+ * (<object> signal_cbs["signed-off"])(username, protocol_id)
+ *
+ * cdef void signal_connection_error_cb(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * connection.PurpleConnectionError err, const_gchar *c_desc):
+ * """
+ */
+
+static void __pyx_f_6purple_signal_connection_error_cb(PurpleConnection *__pyx_v_gc, PurpleConnectionError __pyx_v_err, const gchar *__pyx_v_c_desc) {
+ PurpleAccount *__pyx_v_acc;
+ char *__pyx_v_c_username;
+ char *__pyx_v_c_protocol_id;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_protocol_id;
+ PyObject *__pyx_v_short_desc;
+ PyObject *__pyx_v_desc;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ int __pyx_3;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_protocol_id = Py_None; Py_INCREF(Py_None);
+ __pyx_v_short_desc = Py_None; Py_INCREF(Py_None);
+ __pyx_v_desc = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":85
+ * @params desc A description of the error, giving more information
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc) # <<<<<<<<<<<<<<
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL
+ */
+ __pyx_v_acc = purple_connection_get_account(__pyx_v_gc);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":86
+ * """
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_protocol_id = NULL
+ *
+ */
+ __pyx_v_c_username = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":87
+ * cdef account.PurpleAccount *acc = connection.purple_connection_get_account(gc)
+ * cdef char *c_username = NULL
+ * cdef char *c_protocol_id = NULL # <<<<<<<<<<<<<<
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ */
+ __pyx_v_c_protocol_id = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":89
+ * cdef char *c_protocol_id = NULL
+ *
+ * c_username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * if c_username:
+ * username = <char *> c_username
+ */
+ __pyx_v_c_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":90
+ *
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username: # <<<<<<<<<<<<<<
+ * username = <char *> c_username
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_username != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":91
+ * c_username = <char *> account.purple_account_get_username(acc)
+ * if c_username:
+ * username = <char *> c_username # <<<<<<<<<<<<<<
+ * else:
+ * username = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_username)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":93
+ * username = <char *> c_username
+ * else:
+ * username = None # <<<<<<<<<<<<<<
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = Py_None;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":95
+ * username = None
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc) # <<<<<<<<<<<<<<
+ * if c_protocol_id:
+ * protocol_id = <char *> c_protocol_id
+ */
+ __pyx_v_c_protocol_id = ((char *)purple_account_get_protocol_id(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":96
+ *
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id: # <<<<<<<<<<<<<<
+ * protocol_id = <char *> c_protocol_id
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_protocol_id != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":97
+ * c_protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ * if c_protocol_id:
+ * protocol_id = <char *> c_protocol_id # <<<<<<<<<<<<<<
+ * else:
+ * protocol_id = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_protocol_id)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":99
+ * protocol_id = <char *> c_protocol_id
+ * else:
+ * protocol_id = None # <<<<<<<<<<<<<<
+ *
+ * short_desc = {
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_protocol_id);
+ __pyx_v_protocol_id = Py_None;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":118
+ * 14: "SSL certificate self signed",
+ * 15: "SSL certificate other error",
+ * 16: "Other error" }[<int> err] # <<<<<<<<<<<<<<
+ *
+ * if c_desc:
+ */
+ __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":102
+ *
+ * short_desc = {
+ * 0: "Network error", # <<<<<<<<<<<<<<
+ * 1: "Invalid username",
+ * 2: "Authentication failed",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_0, __pyx_kp_355) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":103
+ * short_desc = {
+ * 0: "Network error",
+ * 1: "Invalid username", # <<<<<<<<<<<<<<
+ * 2: "Authentication failed",
+ * 3: "Authentication impossible",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_1, __pyx_kp_356) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":104
+ * 0: "Network error",
+ * 1: "Invalid username",
+ * 2: "Authentication failed", # <<<<<<<<<<<<<<
+ * 3: "Authentication impossible",
+ * 4: "No SSL support",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_2, __pyx_kp_357) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":105
+ * 1: "Invalid username",
+ * 2: "Authentication failed",
+ * 3: "Authentication impossible", # <<<<<<<<<<<<<<
+ * 4: "No SSL support",
+ * 5: "Encryption error",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_3, __pyx_kp_358) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":106
+ * 2: "Authentication failed",
+ * 3: "Authentication impossible",
+ * 4: "No SSL support", # <<<<<<<<<<<<<<
+ * 5: "Encryption error",
+ * 6: "Name in use",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_4, __pyx_kp_359) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":107
+ * 3: "Authentication impossible",
+ * 4: "No SSL support",
+ * 5: "Encryption error", # <<<<<<<<<<<<<<
+ * 6: "Name in use",
+ * 7: "Invalid settings",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_5, __pyx_kp_360) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":108
+ * 4: "No SSL support",
+ * 5: "Encryption error",
+ * 6: "Name in use", # <<<<<<<<<<<<<<
+ * 7: "Invalid settings",
+ * 8: "SSL certificate not provided",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_6, __pyx_kp_361) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":109
+ * 5: "Encryption error",
+ * 6: "Name in use",
+ * 7: "Invalid settings", # <<<<<<<<<<<<<<
+ * 8: "SSL certificate not provided",
+ * 9: "SSL certificate untrusted",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_7, __pyx_kp_362) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":110
+ * 6: "Name in use",
+ * 7: "Invalid settings",
+ * 8: "SSL certificate not provided", # <<<<<<<<<<<<<<
+ * 9: "SSL certificate untrusted",
+ * 10: "SSL certificate expired",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_8, __pyx_kp_363) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":111
+ * 7: "Invalid settings",
+ * 8: "SSL certificate not provided",
+ * 9: "SSL certificate untrusted", # <<<<<<<<<<<<<<
+ * 10: "SSL certificate expired",
+ * 11: "SSL certificate not activated",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_9, __pyx_kp_364) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":112
+ * 8: "SSL certificate not provided",
+ * 9: "SSL certificate untrusted",
+ * 10: "SSL certificate expired", # <<<<<<<<<<<<<<
+ * 11: "SSL certificate not activated",
+ * 12: "SSL certificate hostname mismatch",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_10, __pyx_kp_365) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":113
+ * 9: "SSL certificate untrusted",
+ * 10: "SSL certificate expired",
+ * 11: "SSL certificate not activated", # <<<<<<<<<<<<<<
+ * 12: "SSL certificate hostname mismatch",
+ * 13: "SSL certificate fingerprint mismatch",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_11, __pyx_kp_366) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":114
+ * 10: "SSL certificate expired",
+ * 11: "SSL certificate not activated",
+ * 12: "SSL certificate hostname mismatch", # <<<<<<<<<<<<<<
+ * 13: "SSL certificate fingerprint mismatch",
+ * 14: "SSL certificate self signed",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_12, __pyx_kp_367) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":115
+ * 11: "SSL certificate not activated",
+ * 12: "SSL certificate hostname mismatch",
+ * 13: "SSL certificate fingerprint mismatch", # <<<<<<<<<<<<<<
+ * 14: "SSL certificate self signed",
+ * 15: "SSL certificate other error",
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_13, __pyx_kp_368) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":116
+ * 12: "SSL certificate hostname mismatch",
+ * 13: "SSL certificate fingerprint mismatch",
+ * 14: "SSL certificate self signed", # <<<<<<<<<<<<<<
+ * 15: "SSL certificate other error",
+ * 16: "Other error" }[<int> err]
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_14, __pyx_kp_369) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":117
+ * 13: "SSL certificate fingerprint mismatch",
+ * 14: "SSL certificate self signed",
+ * 15: "SSL certificate other error", # <<<<<<<<<<<<<<
+ * 16: "Other error" }[<int> err]
+ *
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_15, __pyx_kp_370) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":118
+ * 14: "SSL certificate self signed",
+ * 15: "SSL certificate other error",
+ * 16: "Other error" }[<int> err] # <<<<<<<<<<<<<<
+ *
+ * if c_desc:
+ */
+ if (PyDict_SetItem(__pyx_2, __pyx_int_16, __pyx_kp_371) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = ((int)__pyx_v_err);
+ __pyx_4 = __Pyx_GetItemInt(((PyObject *)__pyx_2), __pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_short_desc);
+ __pyx_v_short_desc = __pyx_4;
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":120
+ * 16: "Other error" }[<int> err]
+ *
+ * if c_desc: # <<<<<<<<<<<<<<
+ * desc = str(<char *> c_desc)
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_desc != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":121
+ *
+ * if c_desc:
+ * desc = str(<char *> c_desc) # <<<<<<<<<<<<<<
+ * else:
+ * desc = None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_c_desc)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_desc);
+ __pyx_v_desc = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":123
+ * desc = str(<char *> c_desc)
+ * else:
+ * desc = None # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("connection-error"):
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_desc);
+ __pyx_v_desc = Py_None;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":125
+ * desc = None
+ *
+ * if signal_cbs.has_key("connection-error"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["connection-error"])(username, protocol_id, \
+ * short_desc, desc)
+ */
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_4, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_372);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_kp_372);
+ __pyx_5 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":126
+ *
+ * if signal_cbs.has_key("connection-error"):
+ * (<object> signal_cbs["connection-error"])(username, protocol_id, \ # <<<<<<<<<<<<<<
+ * short_desc, desc)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyObject_GetItem(__pyx_2, __pyx_kp_373); if (!__pyx_4) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":127
+ * if signal_cbs.has_key("connection-error"):
+ * (<object> signal_cbs["connection-error"])(username, protocol_id, \
+ * short_desc, desc) # <<<<<<<<<<<<<<
+ *
+ * cdef void signal_buddy_signed_on_cb(blist.PurpleBuddy *buddy):
+ */
+ __pyx_5 = PyTuple_New(4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_username);
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_username);
+ Py_INCREF(__pyx_v_protocol_id);
+ PyTuple_SET_ITEM(__pyx_5, 1, __pyx_v_protocol_id);
+ Py_INCREF(__pyx_v_short_desc);
+ PyTuple_SET_ITEM(__pyx_5, 2, __pyx_v_short_desc);
+ Py_INCREF(__pyx_v_desc);
+ PyTuple_SET_ITEM(__pyx_5, 3, __pyx_v_desc);
+ __pyx_2 = PyObject_Call(__pyx_4, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_WriteUnraisable("purple.signal_connection_error_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_protocol_id);
+ Py_DECREF(__pyx_v_short_desc);
+ Py_DECREF(__pyx_v_desc);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":129
+ * short_desc, desc)
+ *
+ * cdef void signal_buddy_signed_on_cb(blist.PurpleBuddy *buddy): # <<<<<<<<<<<<<<
+ * """
+ * Emitted when a buddy on your buddy list signs on.
+ */
+
+static void __pyx_f_6purple_signal_buddy_signed_on_cb(PurpleBuddy *__pyx_v_buddy) {
+ char *__pyx_v_c_name;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_alias;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_alias = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":134
+ * @params buddy The buddy that signed on.
+ * """
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":135
+ * """
+ * cdef char *c_name = NULL
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":137
+ * cdef char *c_alias = NULL
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_buddy_get_name(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":138
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":139
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":141
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":143
+ * name = c_name
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy) # <<<<<<<<<<<<<<
+ * if c_alias == NULL:
+ * alias = None
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":144
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL: # <<<<<<<<<<<<<<
+ * alias = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":145
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL:
+ * alias = None # <<<<<<<<<<<<<<
+ * else:
+ * alias = c_alias
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = Py_None;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":147
+ * alias = None
+ * else:
+ * alias = c_alias # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("buddy-signed-on"):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":149
+ * alias = c_alias
+ *
+ * if signal_cbs.has_key("buddy-signed-on"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["buddy-signed-on"])(name, alias)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_374);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_374);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":150
+ *
+ * if signal_cbs.has_key("buddy-signed-on"):
+ * (<object> signal_cbs["buddy-signed-on"])(name, alias) # <<<<<<<<<<<<<<
+ *
+ * cdef void signal_buddy_signed_off_cb(blist.PurpleBuddy *buddy):
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_375); if (!__pyx_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_name);
+ Py_INCREF(__pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_alias);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.signal_buddy_signed_on_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_alias);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":152
+ * (<object> signal_cbs["buddy-signed-on"])(name, alias)
+ *
+ * cdef void signal_buddy_signed_off_cb(blist.PurpleBuddy *buddy): # <<<<<<<<<<<<<<
+ * """
+ * Emitted when a buddy on your buddy list signs off.
+ */
+
+static void __pyx_f_6purple_signal_buddy_signed_off_cb(PurpleBuddy *__pyx_v_buddy) {
+ char *__pyx_v_c_name;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_alias;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_alias = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":157
+ * @params buddy The buddy that signed off.
+ * """
+ * cdef char *c_name = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_c_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":158
+ * """
+ * cdef char *c_name = NULL
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":160
+ * cdef char *c_alias = NULL
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy) # <<<<<<<<<<<<<<
+ * if c_name == NULL:
+ * name = None
+ */
+ __pyx_v_c_name = ((char *)purple_buddy_get_name(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":161
+ *
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL: # <<<<<<<<<<<<<<
+ * name = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_name == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":162
+ * c_name = <char *> blist.purple_buddy_get_name(buddy)
+ * if c_name == NULL:
+ * name = None # <<<<<<<<<<<<<<
+ * else:
+ * name = c_name
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":164
+ * name = None
+ * else:
+ * name = c_name # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":166
+ * name = c_name
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy) # <<<<<<<<<<<<<<
+ * if c_alias == NULL:
+ * alias = None
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":167
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL: # <<<<<<<<<<<<<<
+ * alias = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":168
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL:
+ * alias = None # <<<<<<<<<<<<<<
+ * else:
+ * alias = c_alias
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = Py_None;
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":170
+ * alias = None
+ * else:
+ * alias = c_alias # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("buddy-signed-off"):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L4:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":172
+ * alias = c_alias
+ *
+ * if signal_cbs.has_key("buddy-signed-off"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["buddy-signed-off"])(name, alias)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_376);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_376);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":173
+ *
+ * if signal_cbs.has_key("buddy-signed-off"):
+ * (<object> signal_cbs["buddy-signed-off"])(name, alias) # <<<<<<<<<<<<<<
+ *
+ * cdef glib.gboolean signal_receiving_im_msg_cb(account.PurpleAccount *account, \
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_377); if (!__pyx_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_name);
+ Py_INCREF(__pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_alias);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.signal_buddy_signed_off_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_alias);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":175
+ * (<object> signal_cbs["buddy-signed-off"])(name, alias)
+ *
+ * cdef glib.gboolean signal_receiving_im_msg_cb(account.PurpleAccount *account, \ # <<<<<<<<<<<<<<
+ * char **sender, char **message, conversation.PurpleConversation *conv, \
+ * conversation.PurpleMessageFlags *flags):
+ */
+
+static gboolean __pyx_f_6purple_signal_receiving_im_msg_cb(PurpleAccount *__pyx_v_account, char **__pyx_v_sender, char **__pyx_v_message, PurpleConversation *__pyx_v_conv, PurpleMessageFlags *__pyx_v_flags) {
+ PurpleBuddy *__pyx_v_buddy;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_alias;
+ PyObject *__pyx_v_stripped;
+ gboolean __pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ gboolean __pyx_5;
+ __pyx_v_alias = Py_None; Py_INCREF(Py_None);
+ __pyx_v_stripped = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":190
+ * @params flags A pointer to the IM message flags.
+ * """
+ * cdef blist.PurpleBuddy *buddy = blist.purple_find_buddy(account, sender[0]) # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_buddy = purple_find_buddy(__pyx_v_account, (__pyx_v_sender[0]));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":191
+ * """
+ * cdef blist.PurpleBuddy *buddy = blist.purple_find_buddy(account, sender[0])
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":193
+ * cdef char *c_alias = NULL
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy) # <<<<<<<<<<<<<<
+ * if c_alias == NULL:
+ * alias = None
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":194
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL: # <<<<<<<<<<<<<<
+ * alias = None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":195
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
+ * if c_alias == NULL:
+ * alias = None # <<<<<<<<<<<<<<
+ * else:
+ * alias = c_alias
+ */
+ Py_INCREF(Py_None);
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = Py_None;
+ goto __pyx_L3;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":197
+ * alias = None
+ * else:
+ * alias = c_alias # <<<<<<<<<<<<<<
+ *
+ * stripped = util.purple_markup_strip_html(message[0])
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_alias);
+ __pyx_v_alias = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":199
+ * alias = c_alias
+ *
+ * stripped = util.purple_markup_strip_html(message[0]) # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("receiving-im-msg"):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(purple_markup_strip_html((__pyx_v_message[0]))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_stripped);
+ __pyx_v_stripped = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":201
+ * stripped = util.purple_markup_strip_html(message[0])
+ *
+ * if signal_cbs.has_key("receiving-im-msg"): # <<<<<<<<<<<<<<
+ * return (<object> signal_cbs["receiving-im-msg"])(sender[0], alias, stripped)
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_has_key); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_378);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_kp_378);
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":202
+ *
+ * if signal_cbs.has_key("receiving-im-msg"):
+ * return (<object> signal_cbs["receiving-im-msg"])(sender[0], alias, stripped) # <<<<<<<<<<<<<<
+ *
+ * cdef void jabber_receiving_xmlnode_cb(connection.PurpleConnection *gc, \
+ */
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_kp_379); if (!__pyx_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = __Pyx_PyBytes_FromString((__pyx_v_sender[0])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ Py_INCREF(__pyx_v_alias);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_alias);
+ Py_INCREF(__pyx_v_stripped);
+ PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_stripped);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ __pyx_5 = __pyx_PyInt_int(__pyx_4); if (unlikely((__pyx_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_r = __pyx_5;
+ goto __pyx_L0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_WriteUnraisable("purple.signal_receiving_im_msg_cb");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_alias);
+ Py_DECREF(__pyx_v_stripped);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":204
+ * return (<object> signal_cbs["receiving-im-msg"])(sender[0], alias, stripped)
+ *
+ * cdef void jabber_receiving_xmlnode_cb(connection.PurpleConnection *gc, \ # <<<<<<<<<<<<<<
+ * xmlnode.xmlnode **packet, glib.gpointer null):
+ * """
+ */
+
+static void __pyx_f_6purple_jabber_receiving_xmlnode_cb(PurpleConnection *__pyx_v_gc, xmlnode **__pyx_v_packet, gpointer __pyx_v_null) {
+ PyObject *__pyx_v_message;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ __pyx_v_message = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":209
+ * Emitted when jabber receives a XML node.
+ * """
+ * message = xmlnode.xmlnode_to_str(packet[0], NULL) # <<<<<<<<<<<<<<
+ *
+ * if signal_cbs.has_key("jabber-receiving-xmlnode"):
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(xmlnode_to_str((__pyx_v_packet[0]), NULL)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_message);
+ __pyx_v_message = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":211
+ * message = xmlnode.xmlnode_to_str(packet[0], NULL)
+ *
+ * if signal_cbs.has_key("jabber-receiving-xmlnode"): # <<<<<<<<<<<<<<
+ * (<object> signal_cbs["jabber-receiving-xmlnode"])(message)
+ */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_has_key); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_380);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_380);
+ __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_3); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":212
+ *
+ * if signal_cbs.has_key("jabber-receiving-xmlnode"):
+ * (<object> signal_cbs["jabber-receiving-xmlnode"])(message) # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_kp_381); if (!__pyx_1) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_message);
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.jabber_receiving_xmlnode_cb");
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_message);
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/util.pxd":22
+ * cimport purple
+ *
+ * def markup_strip_html(message): # <<<<<<<<<<<<<<
+ * if message is None:
+ * return None
+ */
+
+static PyObject *__pyx_pf_6purple_markup_strip_html(PyObject *__pyx_self, PyObject *__pyx_v_message); /*proto*/
+static PyObject *__pyx_pf_6purple_markup_strip_html(PyObject *__pyx_self, PyObject *__pyx_v_message) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+ __pyx_self = __pyx_self;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/util.pxd":23
+ *
+ * def markup_strip_html(message):
+ * if message is None: # <<<<<<<<<<<<<<
+ * return None
+ * else:
+ */
+ __pyx_1 = (__pyx_v_message == Py_None);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/util.pxd":24
+ * def markup_strip_html(message):
+ * if message is None:
+ * return None # <<<<<<<<<<<<<<
+ * else:
+ * return util.purple_markup_strip_html(message)
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/util.pxd":26
+ * return None
+ * else:
+ * return util.purple_markup_strip_html(message) # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_FromString(purple_markup_strip_html(__pyx_2)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.markup_strip_html");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":68
+ * """
+ *
+ * def __init__(self, ui_name, ui_version, ui_website, ui_dev_website, \ # <<<<<<<<<<<<<<
+ * debug_enabled=None, default_path=None):
+ *
+ */
+
+static int __pyx_pf_6purple_6Purple___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_6Purple___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_ui_name = 0;
+ PyObject *__pyx_v_ui_version = 0;
+ PyObject *__pyx_v_ui_website = 0;
+ PyObject *__pyx_v_ui_dev_website = 0;
+ PyObject *__pyx_v_debug_enabled = 0;
+ PyObject *__pyx_v_default_path = 0;
+ int __pyx_r;
+ char *__pyx_1;
+ int __pyx_2;
+ gboolean __pyx_3;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ PyObject *__pyx_7 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_ui_name,&__pyx_kp_ui_version,&__pyx_kp_ui_website,&__pyx_kp_ui_dev_website,&__pyx_kp_debug_enabled,&__pyx_kp_default_path,0};
+ __pyx_v_debug_enabled = Py_None;
+ __pyx_v_default_path = Py_None;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[6] = {0,0,0,0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+ case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_ui_name);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_ui_version);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_ui_website);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 3:
+ values[3] = PyDict_GetItem(__pyx_kwds, __pyx_kp_ui_dev_website);
+ if (likely(values[3])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_ui_name = values[0];
+ __pyx_v_ui_version = values[1];
+ __pyx_v_ui_website = values[2];
+ __pyx_v_ui_dev_website = values[3];
+ if (values[4]) {
+ __pyx_v_debug_enabled = values[4];
+ }
+ if (values[5]) {
+ __pyx_v_default_path = values[5];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 6:
+ __pyx_v_default_path = PyTuple_GET_ITEM(__pyx_args, 5);
+ case 5:
+ __pyx_v_debug_enabled = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4:
+ __pyx_v_ui_dev_website = PyTuple_GET_ITEM(__pyx_args, 3);
+ __pyx_v_ui_website = PyTuple_GET_ITEM(__pyx_args, 2);
+ __pyx_v_ui_version = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_ui_name = PyTuple_GET_ITEM(__pyx_args, 0);
+ break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Purple.__init__");
+ return -1;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":76
+ * global c_ui_dev_website
+ *
+ * c_ui_name = ui_name # <<<<<<<<<<<<<<
+ * c_ui_version = ui_version
+ * c_ui_website = ui_website
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_ui_name); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_6purple_c_ui_name = __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":77
+ *
+ * c_ui_name = ui_name
+ * c_ui_version = ui_version # <<<<<<<<<<<<<<
+ * c_ui_website = ui_website
+ * c_ui_dev_website = ui_dev_website
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_ui_version); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_6purple_c_ui_version = __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":78
+ * c_ui_name = ui_name
+ * c_ui_version = ui_version
+ * c_ui_website = ui_website # <<<<<<<<<<<<<<
+ * c_ui_dev_website = ui_dev_website
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_ui_website); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_6purple_c_ui_website = __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":79
+ * c_ui_version = ui_version
+ * c_ui_website = ui_website
+ * c_ui_dev_website = ui_dev_website # <<<<<<<<<<<<<<
+ *
+ * if debug_enabled:
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_ui_dev_website); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_6purple_c_ui_dev_website = __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":81
+ * c_ui_dev_website = ui_dev_website
+ *
+ * if debug_enabled: # <<<<<<<<<<<<<<
+ * debug.purple_debug_set_enabled(debug_enabled)
+ *
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_debug_enabled); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":82
+ *
+ * if debug_enabled:
+ * debug.purple_debug_set_enabled(debug_enabled) # <<<<<<<<<<<<<<
+ *
+ * if default_path:
+ */
+ __pyx_3 = __pyx_PyInt_int(__pyx_v_debug_enabled); if (unlikely((__pyx_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_debug_set_enabled(__pyx_3);
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":84
+ * debug.purple_debug_set_enabled(debug_enabled)
+ *
+ * if default_path: # <<<<<<<<<<<<<<
+ * util.purple_util_set_user_dir(default_path)
+ *
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_default_path); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":85
+ *
+ * if default_path:
+ * util.purple_util_set_user_dir(default_path) # <<<<<<<<<<<<<<
+ *
+ * # adds glib iteration inside ecore main loop
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_default_path); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_util_set_user_dir(__pyx_1);
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":88
+ *
+ * # adds glib iteration inside ecore main loop
+ * ecore.timer_add(0.001, self.__glib_iteration_when_idle) # <<<<<<<<<<<<<<
+ *
+ * def destroy(self):
+ */
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp_ecore); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyObject_GetAttr(__pyx_4, __pyx_kp_timer_add); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_4 = PyFloat_FromDouble(0.001); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_6 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_7 = PyTuple_New(2); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_7, 0, __pyx_4);
+ PyTuple_SET_ITEM(__pyx_7, 1, __pyx_6);
+ __pyx_4 = 0;
+ __pyx_6 = 0;
+ __pyx_4 = PyObject_Call(__pyx_5, ((PyObject *)__pyx_7), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ Py_DECREF(((PyObject *)__pyx_7)); __pyx_7 = 0;
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ Py_XDECREF(__pyx_7);
+ __Pyx_AddTraceback("purple.Purple.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":90
+ * ecore.timer_add(0.001, self.__glib_iteration_when_idle)
+ *
+ * def destroy(self): # <<<<<<<<<<<<<<
+ * core.purple_core_quit()
+ *
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_destroy(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple_destroy(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":91
+ *
+ * def destroy(self):
+ * core.purple_core_quit() # <<<<<<<<<<<<<<
+ *
+ * def __get_ui_name(self):
+ */
+ purple_core_quit();
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":93
+ * core.purple_core_quit()
+ *
+ * def __get_ui_name(self): # <<<<<<<<<<<<<<
+ * global c_ui_name
+ * return str(c_ui_name)
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple___get_ui_name(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple___get_ui_name(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":95
+ * def __get_ui_name(self):
+ * global c_ui_name
+ * return str(c_ui_name) # <<<<<<<<<<<<<<
+ * ui_name = property(__get_ui_name)
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(__pyx_v_6purple_c_ui_name); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Purple.__get_ui_name");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":98
+ * ui_name = property(__get_ui_name)
+ *
+ * cdef void __core_ui_ops_ui_prefs_init(self): # <<<<<<<<<<<<<<
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_prefs_init\n")
+ * prefs.purple_prefs_load()
+ */
+
+static void __pyx_f_6purple_6Purple___core_ui_ops_ui_prefs_init(struct __pyx_obj_6purple_Purple *__pyx_v_self) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":99
+ *
+ * cdef void __core_ui_ops_ui_prefs_init(self):
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_prefs_init\n") # <<<<<<<<<<<<<<
+ * prefs.purple_prefs_load()
+ *
+ */
+ purple_debug_info(__pyx_k_382, __pyx_k_383, __pyx_k_384);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":100
+ * cdef void __core_ui_ops_ui_prefs_init(self):
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_prefs_init\n")
+ * prefs.purple_prefs_load() # <<<<<<<<<<<<<<
+ *
+ * prefs.purple_prefs_add_none("/carman")
+ */
+ purple_prefs_load();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":102
+ * prefs.purple_prefs_load()
+ *
+ * prefs.purple_prefs_add_none("/carman") # <<<<<<<<<<<<<<
+ *
+ * cdef void __core_ui_ops_debug_init(self):
+ */
+ purple_prefs_add_none(__pyx_k_385);
+
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":104
+ * prefs.purple_prefs_add_none("/carman")
+ *
+ * cdef void __core_ui_ops_debug_init(self): # <<<<<<<<<<<<<<
+ * debug.purple_debug_info("core_ui_ops", "%s", "debug_ui_init\n")
+ * pass
+ */
+
+static void __pyx_f_6purple_6Purple___core_ui_ops_debug_init(struct __pyx_obj_6purple_Purple *__pyx_v_self) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":105
+ *
+ * cdef void __core_ui_ops_debug_init(self):
+ * debug.purple_debug_info("core_ui_ops", "%s", "debug_ui_init\n") # <<<<<<<<<<<<<<
+ * pass
+ *
+ */
+ purple_debug_info(__pyx_k_386, __pyx_k_387, __pyx_k_388);
+
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":108
+ * pass
+ *
+ * cdef void __core_ui_ops_ui_init(self): # <<<<<<<<<<<<<<
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_init\n")
+ *
+ */
+
+static void __pyx_f_6purple_6Purple___core_ui_ops_ui_init(struct __pyx_obj_6purple_Purple *__pyx_v_self) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":109
+ *
+ * cdef void __core_ui_ops_ui_init(self):
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_init\n") # <<<<<<<<<<<<<<
+ *
+ * account.purple_accounts_set_ui_ops(&c_account_ui_ops)
+ */
+ purple_debug_info(__pyx_k_389, __pyx_k_390, __pyx_k_391);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":111
+ * debug.purple_debug_info("core_ui_ops", "%s", "ui_init\n")
+ *
+ * account.purple_accounts_set_ui_ops(&c_account_ui_ops) # <<<<<<<<<<<<<<
+ * connection.purple_connections_set_ui_ops(&c_conn_ui_ops)
+ * blist.purple_blist_set_ui_ops(&c_blist_ui_ops)
+ */
+ purple_accounts_set_ui_ops((&__pyx_v_6purple_c_account_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":112
+ *
+ * account.purple_accounts_set_ui_ops(&c_account_ui_ops)
+ * connection.purple_connections_set_ui_ops(&c_conn_ui_ops) # <<<<<<<<<<<<<<
+ * blist.purple_blist_set_ui_ops(&c_blist_ui_ops)
+ * conversation.purple_conversations_set_ui_ops(&c_conv_ui_ops)
+ */
+ purple_connections_set_ui_ops((&__pyx_v_6purple_c_conn_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":113
+ * account.purple_accounts_set_ui_ops(&c_account_ui_ops)
+ * connection.purple_connections_set_ui_ops(&c_conn_ui_ops)
+ * blist.purple_blist_set_ui_ops(&c_blist_ui_ops) # <<<<<<<<<<<<<<
+ * conversation.purple_conversations_set_ui_ops(&c_conv_ui_ops)
+ * notify.purple_notify_set_ui_ops(&c_notify_ui_ops)
+ */
+ purple_blist_set_ui_ops((&__pyx_v_6purple_c_blist_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":114
+ * connection.purple_connections_set_ui_ops(&c_conn_ui_ops)
+ * blist.purple_blist_set_ui_ops(&c_blist_ui_ops)
+ * conversation.purple_conversations_set_ui_ops(&c_conv_ui_ops) # <<<<<<<<<<<<<<
+ * notify.purple_notify_set_ui_ops(&c_notify_ui_ops)
+ * #privacy.purple_privacy_set_ui_ops(&c_privacy_ui_ops)
+ */
+ purple_conversations_set_ui_ops((&__pyx_v_6purple_c_conv_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":115
+ * blist.purple_blist_set_ui_ops(&c_blist_ui_ops)
+ * conversation.purple_conversations_set_ui_ops(&c_conv_ui_ops)
+ * notify.purple_notify_set_ui_ops(&c_notify_ui_ops) # <<<<<<<<<<<<<<
+ * #privacy.purple_privacy_set_ui_ops(&c_privacy_ui_ops)
+ * request.purple_request_set_ui_ops(&c_request_ui_ops)
+ */
+ purple_notify_set_ui_ops((&__pyx_v_6purple_c_notify_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":117
+ * notify.purple_notify_set_ui_ops(&c_notify_ui_ops)
+ * #privacy.purple_privacy_set_ui_ops(&c_privacy_ui_ops)
+ * request.purple_request_set_ui_ops(&c_request_ui_ops) # <<<<<<<<<<<<<<
+ * #ft.purple_xfers_set_ui_ops(&c_ft_ui_ops)
+ * #roomlist.purple_roomlist_set_ui_ops(&c_rlist_ui_ops)
+ */
+ purple_request_set_ui_ops((&__pyx_v_6purple_c_request_ui_ops));
+
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":121
+ * #roomlist.purple_roomlist_set_ui_ops(&c_rlist_ui_ops)
+ *
+ * cdef void __core_ui_ops_quit(self): # <<<<<<<<<<<<<<
+ * debug.purple_debug_info("core_ui_ops", "%s", "quit\n")
+ *
+ */
+
+static void __pyx_f_6purple_6Purple___core_ui_ops_quit(struct __pyx_obj_6purple_Purple *__pyx_v_self) {
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":122
+ *
+ * cdef void __core_ui_ops_quit(self):
+ * debug.purple_debug_info("core_ui_ops", "%s", "quit\n") # <<<<<<<<<<<<<<
+ *
+ * account.purple_accounts_set_ui_ops(NULL)
+ */
+ purple_debug_info(__pyx_k_392, __pyx_k_393, __pyx_k_394);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":124
+ * debug.purple_debug_info("core_ui_ops", "%s", "quit\n")
+ *
+ * account.purple_accounts_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * connection.purple_connections_set_ui_ops(NULL)
+ * blist.purple_blist_set_ui_ops(NULL)
+ */
+ purple_accounts_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":125
+ *
+ * account.purple_accounts_set_ui_ops(NULL)
+ * connection.purple_connections_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * blist.purple_blist_set_ui_ops(NULL)
+ * conversation.purple_conversations_set_ui_ops(NULL)
+ */
+ purple_connections_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":126
+ * account.purple_accounts_set_ui_ops(NULL)
+ * connection.purple_connections_set_ui_ops(NULL)
+ * blist.purple_blist_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * conversation.purple_conversations_set_ui_ops(NULL)
+ * notify.purple_notify_set_ui_ops(NULL)
+ */
+ purple_blist_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":127
+ * connection.purple_connections_set_ui_ops(NULL)
+ * blist.purple_blist_set_ui_ops(NULL)
+ * conversation.purple_conversations_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * notify.purple_notify_set_ui_ops(NULL)
+ * #privacy.purple_privacy_set_ui_ops(NULL)
+ */
+ purple_conversations_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":128
+ * blist.purple_blist_set_ui_ops(NULL)
+ * conversation.purple_conversations_set_ui_ops(NULL)
+ * notify.purple_notify_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * #privacy.purple_privacy_set_ui_ops(NULL)
+ * request.purple_request_set_ui_ops(NULL)
+ */
+ purple_notify_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":130
+ * notify.purple_notify_set_ui_ops(NULL)
+ * #privacy.purple_privacy_set_ui_ops(NULL)
+ * request.purple_request_set_ui_ops(NULL) # <<<<<<<<<<<<<<
+ * #ft.purple_xfers_set_ui_ops(NULL)
+ * #roomlist.purple_roomlist_set_ui_ops(NULL)
+ */
+ purple_request_set_ui_ops(NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":134
+ * #roomlist.purple_roomlist_set_ui_ops(NULL)
+ *
+ * if self.c_ui_info: # <<<<<<<<<<<<<<
+ * glib.g_hash_table_destroy(<glib.GHashTable *> self.c_ui_info)
+ *
+ */
+ __pyx_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_kp_c_ui_info); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":135
+ *
+ * if self.c_ui_info:
+ * glib.g_hash_table_destroy(<glib.GHashTable *> self.c_ui_info) # <<<<<<<<<<<<<<
+ *
+ * cdef glib.GHashTable *__core_ui_ops_get_ui_info(self):
+ */
+ __pyx_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_kp_c_ui_info); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ g_hash_table_destroy(((GHashTable *)__pyx_1));
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_WriteUnraisable("purple.Purple.__core_ui_ops_quit");
+ __pyx_L0:;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":137
+ * glib.g_hash_table_destroy(<glib.GHashTable *> self.c_ui_info)
+ *
+ * cdef glib.GHashTable *__core_ui_ops_get_ui_info(self): # <<<<<<<<<<<<<<
+ * global c_ui_info
+ * global c_ui_name
+ */
+
+static GHashTable *__pyx_f_6purple_6Purple___core_ui_ops_get_ui_info(struct __pyx_obj_6purple_Purple *__pyx_v_self) {
+ GHashTable *__pyx_r;
+ int __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":144
+ * global c_ui_dev_website
+ *
+ * if c_ui_info == NULL: # <<<<<<<<<<<<<<
+ * c_ui_info = glib.g_hash_table_new(glib.g_str_hash, \
+ * glib.g_str_equal)
+ */
+ __pyx_1 = (__pyx_v_6purple_c_ui_info == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":146
+ * if c_ui_info == NULL:
+ * c_ui_info = glib.g_hash_table_new(glib.g_str_hash, \
+ * glib.g_str_equal) # <<<<<<<<<<<<<<
+ *
+ * glib.g_hash_table_insert(c_ui_info, "name", c_ui_name)
+ */
+ __pyx_v_6purple_c_ui_info = g_hash_table_new(g_str_hash, g_str_equal);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":148
+ * glib.g_str_equal)
+ *
+ * glib.g_hash_table_insert(c_ui_info, "name", c_ui_name) # <<<<<<<<<<<<<<
+ * glib.g_hash_table_insert(c_ui_info, "version", c_ui_version)
+ * glib.g_hash_table_insert(c_ui_info, "website", c_ui_website)
+ */
+ g_hash_table_insert(__pyx_v_6purple_c_ui_info, __pyx_k_395, __pyx_v_6purple_c_ui_name);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":149
+ *
+ * glib.g_hash_table_insert(c_ui_info, "name", c_ui_name)
+ * glib.g_hash_table_insert(c_ui_info, "version", c_ui_version) # <<<<<<<<<<<<<<
+ * glib.g_hash_table_insert(c_ui_info, "website", c_ui_website)
+ * glib.g_hash_table_insert(c_ui_info, "dev_website", c_ui_dev_website)
+ */
+ g_hash_table_insert(__pyx_v_6purple_c_ui_info, __pyx_k_396, __pyx_v_6purple_c_ui_version);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":150
+ * glib.g_hash_table_insert(c_ui_info, "name", c_ui_name)
+ * glib.g_hash_table_insert(c_ui_info, "version", c_ui_version)
+ * glib.g_hash_table_insert(c_ui_info, "website", c_ui_website) # <<<<<<<<<<<<<<
+ * glib.g_hash_table_insert(c_ui_info, "dev_website", c_ui_dev_website)
+ * return c_ui_info
+ */
+ g_hash_table_insert(__pyx_v_6purple_c_ui_info, __pyx_k_397, __pyx_v_6purple_c_ui_website);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":151
+ * glib.g_hash_table_insert(c_ui_info, "version", c_ui_version)
+ * glib.g_hash_table_insert(c_ui_info, "website", c_ui_website)
+ * glib.g_hash_table_insert(c_ui_info, "dev_website", c_ui_dev_website) # <<<<<<<<<<<<<<
+ * return c_ui_info
+ *
+ */
+ g_hash_table_insert(__pyx_v_6purple_c_ui_info, __pyx_k_398, __pyx_v_6purple_c_ui_dev_website);
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":152
+ * glib.g_hash_table_insert(c_ui_info, "website", c_ui_website)
+ * glib.g_hash_table_insert(c_ui_info, "dev_website", c_ui_dev_website)
+ * return c_ui_info # <<<<<<<<<<<<<<
+ *
+ * def __glib_iteration_when_idle(self):
+ */
+ __pyx_r = __pyx_v_6purple_c_ui_info;
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":154
+ * return c_ui_info
+ *
+ * def __glib_iteration_when_idle(self): # <<<<<<<<<<<<<<
+ * glib.g_main_context_iteration(NULL, False)
+ * return True
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple___glib_iteration_when_idle(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple___glib_iteration_when_idle(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":155
+ *
+ * def __glib_iteration_when_idle(self):
+ * glib.g_main_context_iteration(NULL, False) # <<<<<<<<<<<<<<
+ * return True
+ *
+ */
+ g_main_context_iteration(NULL, 0);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":156
+ * def __glib_iteration_when_idle(self):
+ * glib.g_main_context_iteration(NULL, False)
+ * return True # <<<<<<<<<<<<<<
+ *
+ * def purple_init(self):
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("purple.Purple.__glib_iteration_when_idle");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":158
+ * return True
+ *
+ * def purple_init(self): # <<<<<<<<<<<<<<
+ * """ Initializes libpurple """
+ * global c_ui_name
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_purple_init(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_6Purple_purple_init[] = " Initializes libpurple ";
+static PyObject *__pyx_pf_6purple_6Purple_purple_init(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_v_ret;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ __pyx_v_ret = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":162
+ * global c_ui_name
+ *
+ * c_account_ui_ops.notify_added = notify_added # <<<<<<<<<<<<<<
+ * c_account_ui_ops.status_changed = status_changed
+ * c_account_ui_ops.request_add = request_add
+ */
+ __pyx_v_6purple_c_account_ui_ops.notify_added = __pyx_f_6purple_notify_added;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":163
+ *
+ * c_account_ui_ops.notify_added = notify_added
+ * c_account_ui_ops.status_changed = status_changed # <<<<<<<<<<<<<<
+ * c_account_ui_ops.request_add = request_add
+ * c_account_ui_ops.request_authorize = request_authorize
+ */
+ __pyx_v_6purple_c_account_ui_ops.status_changed = __pyx_f_6purple_status_changed;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":164
+ * c_account_ui_ops.notify_added = notify_added
+ * c_account_ui_ops.status_changed = status_changed
+ * c_account_ui_ops.request_add = request_add # <<<<<<<<<<<<<<
+ * c_account_ui_ops.request_authorize = request_authorize
+ * c_account_ui_ops.close_account_request = close_account_request
+ */
+ __pyx_v_6purple_c_account_ui_ops.request_add = __pyx_f_6purple_request_add;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":165
+ * c_account_ui_ops.status_changed = status_changed
+ * c_account_ui_ops.request_add = request_add
+ * c_account_ui_ops.request_authorize = request_authorize # <<<<<<<<<<<<<<
+ * c_account_ui_ops.close_account_request = close_account_request
+ *
+ */
+ __pyx_v_6purple_c_account_ui_ops.request_authorize = __pyx_f_6purple_request_authorize;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":166
+ * c_account_ui_ops.request_add = request_add
+ * c_account_ui_ops.request_authorize = request_authorize
+ * c_account_ui_ops.close_account_request = close_account_request # <<<<<<<<<<<<<<
+ *
+ * c_blist_ui_ops.new_list = new_list
+ */
+ __pyx_v_6purple_c_account_ui_ops.close_account_request = __pyx_f_6purple_close_account_request;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":168
+ * c_account_ui_ops.close_account_request = close_account_request
+ *
+ * c_blist_ui_ops.new_list = new_list # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.new_node = new_node
+ * c_blist_ui_ops.show = show
+ */
+ __pyx_v_6purple_c_blist_ui_ops.new_list = __pyx_f_6purple_new_list;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":169
+ *
+ * c_blist_ui_ops.new_list = new_list
+ * c_blist_ui_ops.new_node = new_node # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.show = show
+ * c_blist_ui_ops.update = update
+ */
+ __pyx_v_6purple_c_blist_ui_ops.new_node = __pyx_f_6purple_new_node;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":170
+ * c_blist_ui_ops.new_list = new_list
+ * c_blist_ui_ops.new_node = new_node
+ * c_blist_ui_ops.show = show # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.update = update
+ * c_blist_ui_ops.remove = remove
+ */
+ __pyx_v_6purple_c_blist_ui_ops.show = __pyx_f_6purple_show;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":171
+ * c_blist_ui_ops.new_node = new_node
+ * c_blist_ui_ops.show = show
+ * c_blist_ui_ops.update = update # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.remove = remove
+ * c_blist_ui_ops.destroy = destroy
+ */
+ __pyx_v_6purple_c_blist_ui_ops.update = __pyx_f_6purple_update;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":172
+ * c_blist_ui_ops.show = show
+ * c_blist_ui_ops.update = update
+ * c_blist_ui_ops.remove = remove # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.destroy = destroy
+ * c_blist_ui_ops.set_visible = set_visible
+ */
+ __pyx_v_6purple_c_blist_ui_ops.remove = __pyx_f_6purple_remove;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":173
+ * c_blist_ui_ops.update = update
+ * c_blist_ui_ops.remove = remove
+ * c_blist_ui_ops.destroy = destroy # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.set_visible = set_visible
+ * c_blist_ui_ops.request_add_buddy = request_add_buddy
+ */
+ __pyx_v_6purple_c_blist_ui_ops.destroy = __pyx_f_6purple_destroy;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":174
+ * c_blist_ui_ops.remove = remove
+ * c_blist_ui_ops.destroy = destroy
+ * c_blist_ui_ops.set_visible = set_visible # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.request_add_buddy = request_add_buddy
+ * c_blist_ui_ops.request_add_chat = request_add_chat
+ */
+ __pyx_v_6purple_c_blist_ui_ops.set_visible = __pyx_f_6purple_set_visible;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":175
+ * c_blist_ui_ops.destroy = destroy
+ * c_blist_ui_ops.set_visible = set_visible
+ * c_blist_ui_ops.request_add_buddy = request_add_buddy # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.request_add_chat = request_add_chat
+ * c_blist_ui_ops.request_add_group = request_add_group
+ */
+ __pyx_v_6purple_c_blist_ui_ops.request_add_buddy = __pyx_f_6purple_request_add_buddy;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":176
+ * c_blist_ui_ops.set_visible = set_visible
+ * c_blist_ui_ops.request_add_buddy = request_add_buddy
+ * c_blist_ui_ops.request_add_chat = request_add_chat # <<<<<<<<<<<<<<
+ * c_blist_ui_ops.request_add_group = request_add_group
+ *
+ */
+ __pyx_v_6purple_c_blist_ui_ops.request_add_chat = __pyx_f_6purple_request_add_chat;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":177
+ * c_blist_ui_ops.request_add_buddy = request_add_buddy
+ * c_blist_ui_ops.request_add_chat = request_add_chat
+ * c_blist_ui_ops.request_add_group = request_add_group # <<<<<<<<<<<<<<
+ *
+ * c_conn_ui_ops.connect_progress = connect_progress
+ */
+ __pyx_v_6purple_c_blist_ui_ops.request_add_group = __pyx_f_6purple_request_add_group;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":179
+ * c_blist_ui_ops.request_add_group = request_add_group
+ *
+ * c_conn_ui_ops.connect_progress = connect_progress # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.connected = connected
+ * c_conn_ui_ops.disconnected = disconnected
+ */
+ __pyx_v_6purple_c_conn_ui_ops.connect_progress = __pyx_f_6purple_connect_progress;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":180
+ *
+ * c_conn_ui_ops.connect_progress = connect_progress
+ * c_conn_ui_ops.connected = connected # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.disconnected = disconnected
+ * c_conn_ui_ops.notice = notice
+ */
+ __pyx_v_6purple_c_conn_ui_ops.connected = __pyx_f_6purple_connected;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":181
+ * c_conn_ui_ops.connect_progress = connect_progress
+ * c_conn_ui_ops.connected = connected
+ * c_conn_ui_ops.disconnected = disconnected # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.notice = notice
+ * c_conn_ui_ops.report_disconnect = report_disconnect
+ */
+ __pyx_v_6purple_c_conn_ui_ops.disconnected = __pyx_f_6purple_disconnected;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":182
+ * c_conn_ui_ops.connected = connected
+ * c_conn_ui_ops.disconnected = disconnected
+ * c_conn_ui_ops.notice = notice # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.report_disconnect = report_disconnect
+ * c_conn_ui_ops.network_connected = network_connected
+ */
+ __pyx_v_6purple_c_conn_ui_ops.notice = __pyx_f_6purple_notice;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":183
+ * c_conn_ui_ops.disconnected = disconnected
+ * c_conn_ui_ops.notice = notice
+ * c_conn_ui_ops.report_disconnect = report_disconnect # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.network_connected = network_connected
+ * c_conn_ui_ops.network_disconnected = network_disconnected
+ */
+ __pyx_v_6purple_c_conn_ui_ops.report_disconnect = __pyx_f_6purple_report_disconnect;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":184
+ * c_conn_ui_ops.notice = notice
+ * c_conn_ui_ops.report_disconnect = report_disconnect
+ * c_conn_ui_ops.network_connected = network_connected # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.network_disconnected = network_disconnected
+ * c_conn_ui_ops.report_disconnect_reason = report_disconnect_reason
+ */
+ __pyx_v_6purple_c_conn_ui_ops.network_connected = __pyx_f_6purple_network_connected;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":185
+ * c_conn_ui_ops.report_disconnect = report_disconnect
+ * c_conn_ui_ops.network_connected = network_connected
+ * c_conn_ui_ops.network_disconnected = network_disconnected # <<<<<<<<<<<<<<
+ * c_conn_ui_ops.report_disconnect_reason = report_disconnect_reason
+ *
+ */
+ __pyx_v_6purple_c_conn_ui_ops.network_disconnected = __pyx_f_6purple_network_disconnected;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":186
+ * c_conn_ui_ops.network_connected = network_connected
+ * c_conn_ui_ops.network_disconnected = network_disconnected
+ * c_conn_ui_ops.report_disconnect_reason = report_disconnect_reason # <<<<<<<<<<<<<<
+ *
+ * c_conv_ui_ops.create_conversation = create_conversation
+ */
+ __pyx_v_6purple_c_conn_ui_ops.report_disconnect_reason = __pyx_f_6purple_report_disconnect_reason;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":188
+ * c_conn_ui_ops.report_disconnect_reason = report_disconnect_reason
+ *
+ * c_conv_ui_ops.create_conversation = create_conversation # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.destroy_conversation = destroy_conversation
+ * c_conv_ui_ops.write_chat = write_chat
+ */
+ __pyx_v_6purple_c_conv_ui_ops.create_conversation = __pyx_f_6purple_create_conversation;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":189
+ *
+ * c_conv_ui_ops.create_conversation = create_conversation
+ * c_conv_ui_ops.destroy_conversation = destroy_conversation # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_chat = write_chat
+ * c_conv_ui_ops.write_im = write_im
+ */
+ __pyx_v_6purple_c_conv_ui_ops.destroy_conversation = __pyx_f_6purple_destroy_conversation;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":190
+ * c_conv_ui_ops.create_conversation = create_conversation
+ * c_conv_ui_ops.destroy_conversation = destroy_conversation
+ * c_conv_ui_ops.write_chat = write_chat # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_im = write_im
+ * c_conv_ui_ops.write_conv = write_conv
+ */
+ __pyx_v_6purple_c_conv_ui_ops.write_chat = __pyx_f_6purple_write_chat;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":191
+ * c_conv_ui_ops.destroy_conversation = destroy_conversation
+ * c_conv_ui_ops.write_chat = write_chat
+ * c_conv_ui_ops.write_im = write_im # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_conv = write_conv
+ * c_conv_ui_ops.chat_add_users = chat_add_users
+ */
+ __pyx_v_6purple_c_conv_ui_ops.write_im = __pyx_f_6purple_write_im;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":192
+ * c_conv_ui_ops.write_chat = write_chat
+ * c_conv_ui_ops.write_im = write_im
+ * c_conv_ui_ops.write_conv = write_conv # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_add_users = chat_add_users
+ * c_conv_ui_ops.chat_rename_user = chat_rename_user
+ */
+ __pyx_v_6purple_c_conv_ui_ops.write_conv = __pyx_f_6purple_write_conv;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":193
+ * c_conv_ui_ops.write_im = write_im
+ * c_conv_ui_ops.write_conv = write_conv
+ * c_conv_ui_ops.chat_add_users = chat_add_users # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_rename_user = chat_rename_user
+ * c_conv_ui_ops.chat_remove_users = chat_remove_users
+ */
+ __pyx_v_6purple_c_conv_ui_ops.chat_add_users = __pyx_f_6purple_chat_add_users;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":194
+ * c_conv_ui_ops.write_conv = write_conv
+ * c_conv_ui_ops.chat_add_users = chat_add_users
+ * c_conv_ui_ops.chat_rename_user = chat_rename_user # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_remove_users = chat_remove_users
+ * c_conv_ui_ops.chat_update_user = chat_update_user
+ */
+ __pyx_v_6purple_c_conv_ui_ops.chat_rename_user = __pyx_f_6purple_chat_rename_user;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":195
+ * c_conv_ui_ops.chat_add_users = chat_add_users
+ * c_conv_ui_ops.chat_rename_user = chat_rename_user
+ * c_conv_ui_ops.chat_remove_users = chat_remove_users # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_update_user = chat_update_user
+ * c_conv_ui_ops.present = present
+ */
+ __pyx_v_6purple_c_conv_ui_ops.chat_remove_users = __pyx_f_6purple_chat_remove_users;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":196
+ * c_conv_ui_ops.chat_rename_user = chat_rename_user
+ * c_conv_ui_ops.chat_remove_users = chat_remove_users
+ * c_conv_ui_ops.chat_update_user = chat_update_user # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.present = present
+ * c_conv_ui_ops.has_focus = has_focus
+ */
+ __pyx_v_6purple_c_conv_ui_ops.chat_update_user = __pyx_f_6purple_chat_update_user;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":197
+ * c_conv_ui_ops.chat_remove_users = chat_remove_users
+ * c_conv_ui_ops.chat_update_user = chat_update_user
+ * c_conv_ui_ops.present = present # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.has_focus = has_focus
+ * c_conv_ui_ops.custom_smiley_add = custom_smiley_add
+ */
+ __pyx_v_6purple_c_conv_ui_ops.present = __pyx_f_6purple_present;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":198
+ * c_conv_ui_ops.chat_update_user = chat_update_user
+ * c_conv_ui_ops.present = present
+ * c_conv_ui_ops.has_focus = has_focus # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_add = custom_smiley_add
+ * c_conv_ui_ops.custom_smiley_write = custom_smiley_write
+ */
+ __pyx_v_6purple_c_conv_ui_ops.has_focus = __pyx_f_6purple_has_focus;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":199
+ * c_conv_ui_ops.present = present
+ * c_conv_ui_ops.has_focus = has_focus
+ * c_conv_ui_ops.custom_smiley_add = custom_smiley_add # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_write = custom_smiley_write
+ * c_conv_ui_ops.custom_smiley_close = custom_smiley_close
+ */
+ __pyx_v_6purple_c_conv_ui_ops.custom_smiley_add = __pyx_f_6purple_custom_smiley_add;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":200
+ * c_conv_ui_ops.has_focus = has_focus
+ * c_conv_ui_ops.custom_smiley_add = custom_smiley_add
+ * c_conv_ui_ops.custom_smiley_write = custom_smiley_write # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_close = custom_smiley_close
+ * c_conv_ui_ops.send_confirm = send_confirm
+ */
+ __pyx_v_6purple_c_conv_ui_ops.custom_smiley_write = __pyx_f_6purple_custom_smiley_write;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":201
+ * c_conv_ui_ops.custom_smiley_add = custom_smiley_add
+ * c_conv_ui_ops.custom_smiley_write = custom_smiley_write
+ * c_conv_ui_ops.custom_smiley_close = custom_smiley_close # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.send_confirm = send_confirm
+ *
+ */
+ __pyx_v_6purple_c_conv_ui_ops.custom_smiley_close = __pyx_f_6purple_custom_smiley_close;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":202
+ * c_conv_ui_ops.custom_smiley_write = custom_smiley_write
+ * c_conv_ui_ops.custom_smiley_close = custom_smiley_close
+ * c_conv_ui_ops.send_confirm = send_confirm # <<<<<<<<<<<<<<
+ *
+ * c_notify_ui_ops.notify_message = notify_message
+ */
+ __pyx_v_6purple_c_conv_ui_ops.send_confirm = __pyx_f_6purple_send_confirm;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":204
+ * c_conv_ui_ops.send_confirm = send_confirm
+ *
+ * c_notify_ui_ops.notify_message = notify_message # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_email = notify_email
+ * c_notify_ui_ops.notify_emails = notify_emails
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_message = __pyx_f_6purple_notify_message;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":205
+ *
+ * c_notify_ui_ops.notify_message = notify_message
+ * c_notify_ui_ops.notify_email = notify_email # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_emails = notify_emails
+ * c_notify_ui_ops.notify_formatted = notify_formatted
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_email = __pyx_f_6purple_notify_email;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":206
+ * c_notify_ui_ops.notify_message = notify_message
+ * c_notify_ui_ops.notify_email = notify_email
+ * c_notify_ui_ops.notify_emails = notify_emails # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_formatted = notify_formatted
+ * c_notify_ui_ops.notify_searchresults = notify_searchresults
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_emails = __pyx_f_6purple_notify_emails;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":207
+ * c_notify_ui_ops.notify_email = notify_email
+ * c_notify_ui_ops.notify_emails = notify_emails
+ * c_notify_ui_ops.notify_formatted = notify_formatted # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_searchresults = notify_searchresults
+ * c_notify_ui_ops.notify_searchresults_new_rows = notify_searchresults_new_rows
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_formatted = __pyx_f_6purple_notify_formatted;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":208
+ * c_notify_ui_ops.notify_emails = notify_emails
+ * c_notify_ui_ops.notify_formatted = notify_formatted
+ * c_notify_ui_ops.notify_searchresults = notify_searchresults # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_searchresults_new_rows = notify_searchresults_new_rows
+ * c_notify_ui_ops.notify_userinfo = notify_userinfo
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_searchresults = __pyx_f_6purple_notify_searchresults;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":209
+ * c_notify_ui_ops.notify_formatted = notify_formatted
+ * c_notify_ui_ops.notify_searchresults = notify_searchresults
+ * c_notify_ui_ops.notify_searchresults_new_rows = notify_searchresults_new_rows # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_userinfo = notify_userinfo
+ * c_notify_ui_ops.notify_uri = notify_uri
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_searchresults_new_rows = __pyx_f_6purple_notify_searchresults_new_rows;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":210
+ * c_notify_ui_ops.notify_searchresults = notify_searchresults
+ * c_notify_ui_ops.notify_searchresults_new_rows = notify_searchresults_new_rows
+ * c_notify_ui_ops.notify_userinfo = notify_userinfo # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.notify_uri = notify_uri
+ * c_notify_ui_ops.close_notify = close_notify
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_userinfo = __pyx_f_6purple_notify_userinfo;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":211
+ * c_notify_ui_ops.notify_searchresults_new_rows = notify_searchresults_new_rows
+ * c_notify_ui_ops.notify_userinfo = notify_userinfo
+ * c_notify_ui_ops.notify_uri = notify_uri # <<<<<<<<<<<<<<
+ * c_notify_ui_ops.close_notify = close_notify
+ *
+ */
+ __pyx_v_6purple_c_notify_ui_ops.notify_uri = __pyx_f_6purple_notify_uri;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":212
+ * c_notify_ui_ops.notify_userinfo = notify_userinfo
+ * c_notify_ui_ops.notify_uri = notify_uri
+ * c_notify_ui_ops.close_notify = close_notify # <<<<<<<<<<<<<<
+ *
+ * c_request_ui_ops.request_input = request_input
+ */
+ __pyx_v_6purple_c_notify_ui_ops.close_notify = __pyx_f_6purple_close_notify;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":214
+ * c_notify_ui_ops.close_notify = close_notify
+ *
+ * c_request_ui_ops.request_input = request_input # <<<<<<<<<<<<<<
+ * c_request_ui_ops.request_choice = request_choice
+ * c_request_ui_ops.request_action = request_action
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_input = __pyx_f_6purple_request_input;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":215
+ *
+ * c_request_ui_ops.request_input = request_input
+ * c_request_ui_ops.request_choice = request_choice # <<<<<<<<<<<<<<
+ * c_request_ui_ops.request_action = request_action
+ * c_request_ui_ops.request_fields = request_fields
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_choice = __pyx_f_6purple_request_choice;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":216
+ * c_request_ui_ops.request_input = request_input
+ * c_request_ui_ops.request_choice = request_choice
+ * c_request_ui_ops.request_action = request_action # <<<<<<<<<<<<<<
+ * c_request_ui_ops.request_fields = request_fields
+ * c_request_ui_ops.request_file = request_file
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_action = __pyx_f_6purple_request_action;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":217
+ * c_request_ui_ops.request_choice = request_choice
+ * c_request_ui_ops.request_action = request_action
+ * c_request_ui_ops.request_fields = request_fields # <<<<<<<<<<<<<<
+ * c_request_ui_ops.request_file = request_file
+ * c_request_ui_ops.close_request = close_request
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_fields = __pyx_f_6purple_request_fields;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":218
+ * c_request_ui_ops.request_action = request_action
+ * c_request_ui_ops.request_fields = request_fields
+ * c_request_ui_ops.request_file = request_file # <<<<<<<<<<<<<<
+ * c_request_ui_ops.close_request = close_request
+ * c_request_ui_ops.request_folder = request_folder
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_file = __pyx_f_6purple_request_file;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":219
+ * c_request_ui_ops.request_fields = request_fields
+ * c_request_ui_ops.request_file = request_file
+ * c_request_ui_ops.close_request = close_request # <<<<<<<<<<<<<<
+ * c_request_ui_ops.request_folder = request_folder
+ *
+ */
+ __pyx_v_6purple_c_request_ui_ops.close_request = __pyx_f_6purple_close_request;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":220
+ * c_request_ui_ops.request_file = request_file
+ * c_request_ui_ops.close_request = close_request
+ * c_request_ui_ops.request_folder = request_folder # <<<<<<<<<<<<<<
+ *
+ * c_core_ui_ops.ui_prefs_init = <void (*)()> self.__core_ui_ops_ui_prefs_init
+ */
+ __pyx_v_6purple_c_request_ui_ops.request_folder = __pyx_f_6purple_request_folder;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":222
+ * c_request_ui_ops.request_folder = request_folder
+ *
+ * c_core_ui_ops.ui_prefs_init = <void (*)()> self.__core_ui_ops_ui_prefs_init # <<<<<<<<<<<<<<
+ * c_core_ui_ops.debug_ui_init = <void (*)()> self.__core_ui_ops_debug_init
+ * c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init
+ */
+ __pyx_v_6purple_c_core_ui_ops.ui_prefs_init = ((void (*)(void))((struct __pyx_vtabstruct_6purple_Purple *)((struct __pyx_obj_6purple_Purple *)__pyx_v_self)->__pyx_vtab)->__core_ui_ops_ui_prefs_init);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":223
+ *
+ * c_core_ui_ops.ui_prefs_init = <void (*)()> self.__core_ui_ops_ui_prefs_init
+ * c_core_ui_ops.debug_ui_init = <void (*)()> self.__core_ui_ops_debug_init # <<<<<<<<<<<<<<
+ * c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init
+ * c_core_ui_ops.quit = <void (*)()> self.__core_ui_ops_quit
+ */
+ __pyx_v_6purple_c_core_ui_ops.debug_ui_init = ((void (*)(void))((struct __pyx_vtabstruct_6purple_Purple *)((struct __pyx_obj_6purple_Purple *)__pyx_v_self)->__pyx_vtab)->__core_ui_ops_debug_init);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":224
+ * c_core_ui_ops.ui_prefs_init = <void (*)()> self.__core_ui_ops_ui_prefs_init
+ * c_core_ui_ops.debug_ui_init = <void (*)()> self.__core_ui_ops_debug_init
+ * c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init # <<<<<<<<<<<<<<
+ * c_core_ui_ops.quit = <void (*)()> self.__core_ui_ops_quit
+ * c_core_ui_ops.get_ui_info = <glib.GHashTable* (*)()> self.__core_ui_ops_get_ui_info
+ */
+ __pyx_v_6purple_c_core_ui_ops.ui_init = ((void (*)(void))((struct __pyx_vtabstruct_6purple_Purple *)((struct __pyx_obj_6purple_Purple *)__pyx_v_self)->__pyx_vtab)->__core_ui_ops_ui_init);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":225
+ * c_core_ui_ops.debug_ui_init = <void (*)()> self.__core_ui_ops_debug_init
+ * c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init
+ * c_core_ui_ops.quit = <void (*)()> self.__core_ui_ops_quit # <<<<<<<<<<<<<<
+ * c_core_ui_ops.get_ui_info = <glib.GHashTable* (*)()> self.__core_ui_ops_get_ui_info
+ *
+ */
+ __pyx_v_6purple_c_core_ui_ops.quit = ((void (*)(void))((struct __pyx_vtabstruct_6purple_Purple *)((struct __pyx_obj_6purple_Purple *)__pyx_v_self)->__pyx_vtab)->__core_ui_ops_quit);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":226
+ * c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init
+ * c_core_ui_ops.quit = <void (*)()> self.__core_ui_ops_quit
+ * c_core_ui_ops.get_ui_info = <glib.GHashTable* (*)()> self.__core_ui_ops_get_ui_info # <<<<<<<<<<<<<<
+ *
+ * c_eventloop_ui_ops.timeout_add = glib.g_timeout_add
+ */
+ __pyx_v_6purple_c_core_ui_ops.get_ui_info = ((GHashTable *(*)(void))((struct __pyx_vtabstruct_6purple_Purple *)((struct __pyx_obj_6purple_Purple *)__pyx_v_self)->__pyx_vtab)->__core_ui_ops_get_ui_info);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":228
+ * c_core_ui_ops.get_ui_info = <glib.GHashTable* (*)()> self.__core_ui_ops_get_ui_info
+ *
+ * c_eventloop_ui_ops.timeout_add = glib.g_timeout_add # <<<<<<<<<<<<<<
+ * c_eventloop_ui_ops.timeout_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_add = glib_input_add
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.timeout_add = g_timeout_add;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":229
+ *
+ * c_eventloop_ui_ops.timeout_add = glib.g_timeout_add
+ * c_eventloop_ui_ops.timeout_remove = glib.g_source_remove # <<<<<<<<<<<<<<
+ * c_eventloop_ui_ops.input_add = glib_input_add
+ * c_eventloop_ui_ops.input_remove = glib.g_source_remove
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.timeout_remove = g_source_remove;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":230
+ * c_eventloop_ui_ops.timeout_add = glib.g_timeout_add
+ * c_eventloop_ui_ops.timeout_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_add = glib_input_add # <<<<<<<<<<<<<<
+ * c_eventloop_ui_ops.input_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_get_error = NULL
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.input_add = glib_input_add;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":231
+ * c_eventloop_ui_ops.timeout_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_add = glib_input_add
+ * c_eventloop_ui_ops.input_remove = glib.g_source_remove # <<<<<<<<<<<<<<
+ * c_eventloop_ui_ops.input_get_error = NULL
+ * c_eventloop_ui_ops.timeout_add_seconds = NULL
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.input_remove = g_source_remove;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":232
+ * c_eventloop_ui_ops.input_add = glib_input_add
+ * c_eventloop_ui_ops.input_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_get_error = NULL # <<<<<<<<<<<<<<
+ * c_eventloop_ui_ops.timeout_add_seconds = NULL
+ *
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.input_get_error = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":233
+ * c_eventloop_ui_ops.input_remove = glib.g_source_remove
+ * c_eventloop_ui_ops.input_get_error = NULL
+ * c_eventloop_ui_ops.timeout_add_seconds = NULL # <<<<<<<<<<<<<<
+ *
+ * core.purple_core_set_ui_ops(&c_core_ui_ops)
+ */
+ __pyx_v_6purple_c_eventloop_ui_ops.timeout_add_seconds = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":235
+ * c_eventloop_ui_ops.timeout_add_seconds = NULL
+ *
+ * core.purple_core_set_ui_ops(&c_core_ui_ops) # <<<<<<<<<<<<<<
+ * eventloop.purple_eventloop_set_ui_ops(&c_eventloop_ui_ops)
+ *
+ */
+ purple_core_set_ui_ops((&__pyx_v_6purple_c_core_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":236
+ *
+ * core.purple_core_set_ui_ops(&c_core_ui_ops)
+ * eventloop.purple_eventloop_set_ui_ops(&c_eventloop_ui_ops) # <<<<<<<<<<<<<<
+ *
+ * # initialize purple core
+ */
+ purple_eventloop_set_ui_ops((&__pyx_v_6purple_c_eventloop_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":239
+ *
+ * # initialize purple core
+ * ret = core.purple_core_init(c_ui_name) # <<<<<<<<<<<<<<
+ * if ret is False:
+ * debug.purple_debug_fatal("main", "%s", "libpurple " \
+ */
+ __pyx_1 = PyInt_FromLong(purple_core_init(__pyx_v_6purple_c_ui_name)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_ret);
+ __pyx_v_ret = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":240
+ * # initialize purple core
+ * ret = core.purple_core_init(c_ui_name)
+ * if ret is False: # <<<<<<<<<<<<<<
+ * debug.purple_debug_fatal("main", "%s", "libpurple " \
+ * "initialization failed.\n")
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = (__pyx_v_ret == __pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":241
+ * ret = core.purple_core_init(c_ui_name)
+ * if ret is False:
+ * debug.purple_debug_fatal("main", "%s", "libpurple " \ # <<<<<<<<<<<<<<
+ * "initialization failed.\n")
+ * return False
+ */
+ purple_debug_fatal(__pyx_k_399, __pyx_k_400, __pyx_k_401);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":243
+ * debug.purple_debug_fatal("main", "%s", "libpurple " \
+ * "initialization failed.\n")
+ * return False # <<<<<<<<<<<<<<
+ *
+ * # check if there is another instance of libpurple running
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":246
+ *
+ * # check if there is another instance of libpurple running
+ * if core.purple_core_ensure_single_instance() == False: # <<<<<<<<<<<<<<
+ * debug.purple_debug_fatal("main", "%s", "Another instance of " \
+ * "libpurple is already running.\n")
+ */
+ __pyx_2 = (purple_core_ensure_single_instance() == 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":247
+ * # check if there is another instance of libpurple running
+ * if core.purple_core_ensure_single_instance() == False:
+ * debug.purple_debug_fatal("main", "%s", "Another instance of " \ # <<<<<<<<<<<<<<
+ * "libpurple is already running.\n")
+ * core.purple_core_quit()
+ */
+ purple_debug_fatal(__pyx_k_402, __pyx_k_403, __pyx_k_404);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":249
+ * debug.purple_debug_fatal("main", "%s", "Another instance of " \
+ * "libpurple is already running.\n")
+ * core.purple_core_quit() # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ purple_core_quit();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":250
+ * "libpurple is already running.\n")
+ * core.purple_core_quit()
+ * return False # <<<<<<<<<<<<<<
+ *
+ * # create and load the buddy list
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":253
+ *
+ * # create and load the buddy list
+ * blist.purple_set_blist(blist.purple_blist_new()) # <<<<<<<<<<<<<<
+ * blist.purple_blist_load()
+ *
+ */
+ purple_set_blist(purple_blist_new());
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":254
+ * # create and load the buddy list
+ * blist.purple_set_blist(blist.purple_blist_new())
+ * blist.purple_blist_load() # <<<<<<<<<<<<<<
+ *
+ * # load pounces
+ */
+ purple_blist_load();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":257
+ *
+ * # load pounces
+ * pounce.purple_pounces_load() # <<<<<<<<<<<<<<
+ *
+ * return ret
+ */
+ purple_pounces_load();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":259
+ * pounce.purple_pounces_load()
+ *
+ * return ret # <<<<<<<<<<<<<<
+ *
+ * def add_callback(self, type, name, callback):
+ */
+ Py_INCREF(__pyx_v_ret);
+ __pyx_r = __pyx_v_ret;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("purple.Purple.purple_init");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_ret);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":261
+ * return ret
+ *
+ * def add_callback(self, type, name, callback): # <<<<<<<<<<<<<<
+ * """
+ * Adds a callback with given name inside callback's type.
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_add_callback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_6purple_6Purple_add_callback[] = "\n Adds a callback with given name inside callback's type.\n\n @param type Callback type (e.g. \"account\")\n @param name Callback name (e.g. \"notify-added\")\n @param callback Callback to be called\n ";
+static PyObject *__pyx_pf_6purple_6Purple_add_callback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_type = 0;
+ PyObject *__pyx_v_name = 0;
+ PyObject *__pyx_v_callback = 0;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_type,&__pyx_kp_name,&__pyx_kp_callback,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[3] = {0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_type);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_name);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("add_callback", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_callback);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("add_callback", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "add_callback") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_type = values[0];
+ __pyx_v_name = values[1];
+ __pyx_v_callback = values[2];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_type = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_callback = PyTuple_GET_ITEM(__pyx_args, 2);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("add_callback", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Purple.add_callback");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":281
+ * "conversation": conversation_cbs,
+ * "notify": notify_cbs,
+ * "request": request_cbs }[type][name] = callback # <<<<<<<<<<<<<<
+ *
+ * def signal_connect(self, name=None, cb=None):
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":276
+ * global request_cbs
+ *
+ * { "account": account_cbs, # <<<<<<<<<<<<<<
+ * "blist": blist_cbs,
+ * "connection": connection_cbs,
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_account_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_405, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":277
+ *
+ * { "account": account_cbs,
+ * "blist": blist_cbs, # <<<<<<<<<<<<<<
+ * "connection": connection_cbs,
+ * "conversation": conversation_cbs,
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_blist_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_406, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":278
+ * { "account": account_cbs,
+ * "blist": blist_cbs,
+ * "connection": connection_cbs, # <<<<<<<<<<<<<<
+ * "conversation": conversation_cbs,
+ * "notify": notify_cbs,
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_connection_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_407, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":279
+ * "blist": blist_cbs,
+ * "connection": connection_cbs,
+ * "conversation": conversation_cbs, # <<<<<<<<<<<<<<
+ * "notify": notify_cbs,
+ * "request": request_cbs }[type][name] = callback
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_conversation_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_408, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":280
+ * "connection": connection_cbs,
+ * "conversation": conversation_cbs,
+ * "notify": notify_cbs, # <<<<<<<<<<<<<<
+ * "request": request_cbs }[type][name] = callback
+ *
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_notify_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_409, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":281
+ * "conversation": conversation_cbs,
+ * "notify": notify_cbs,
+ * "request": request_cbs }[type][name] = callback # <<<<<<<<<<<<<<
+ *
+ * def signal_connect(self, name=None, cb=None):
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_request_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_410, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyObject_GetItem(((PyObject *)__pyx_1), __pyx_v_type); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyObject_SetItem(__pyx_2, __pyx_v_name, __pyx_v_callback) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Purple.add_callback");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":283
+ * "request": request_cbs }[type][name] = callback
+ *
+ * def signal_connect(self, name=None, cb=None): # <<<<<<<<<<<<<<
+ * cdef int handle
+ * cdef plugin.PurplePlugin *jabber
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_signal_connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple_signal_connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_name = 0;
+ PyObject *__pyx_v_cb = 0;
+ int __pyx_v_handle;
+ PurplePlugin *__pyx_v_jabber;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_name,&__pyx_kp_cb,0};
+ __pyx_v_name = Py_None;
+ __pyx_v_cb = Py_None;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "signal_connect") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ if (values[0]) {
+ __pyx_v_name = values[0];
+ }
+ if (values[1]) {
+ __pyx_v_cb = values[1];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: __pyx_v_cb = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("signal_connect", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Purple.signal_connect");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":287
+ * cdef plugin.PurplePlugin *jabber
+ *
+ * if name is None: # <<<<<<<<<<<<<<
+ * return
+ *
+ */
+ __pyx_1 = (__pyx_v_name == Py_None);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":288
+ *
+ * if name is None:
+ * return # <<<<<<<<<<<<<<
+ *
+ * jabber = prpl.purple_find_prpl("prpl-jabber")
+ */
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":290
+ * return
+ *
+ * jabber = prpl.purple_find_prpl("prpl-jabber") # <<<<<<<<<<<<<<
+ * if jabber == NULL:
+ * return
+ */
+ __pyx_v_jabber = purple_find_prpl(__pyx_k_411);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":291
+ *
+ * jabber = prpl.purple_find_prpl("prpl-jabber")
+ * if jabber == NULL: # <<<<<<<<<<<<<<
+ * return
+ *
+ */
+ __pyx_1 = (__pyx_v_jabber == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":292
+ * jabber = prpl.purple_find_prpl("prpl-jabber")
+ * if jabber == NULL:
+ * return # <<<<<<<<<<<<<<
+ *
+ * global signal_cbs
+ */
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":295
+ *
+ * global signal_cbs
+ * signal_cbs[name] = cb # <<<<<<<<<<<<<<
+ *
+ * if name == "signed-on":
+ */
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_signal_cbs); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_2, __pyx_v_name, __pyx_v_cb) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":297
+ * signal_cbs[name] = cb
+ *
+ * if name == "signed-on": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * connection.purple_connections_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_412, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":301
+ * connection.purple_connections_get_handle(),
+ * "signed-on", &handle,
+ * <signals.PurpleCallback> signal_signed_on_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "signed-off":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_connections_get_handle(), __pyx_k_413, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_signed_on_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":302
+ * "signed-on", &handle,
+ * <signals.PurpleCallback> signal_signed_on_cb, NULL)
+ * elif name == "signed-off": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * connection.purple_connections_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_414, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":306
+ * connection.purple_connections_get_handle(),
+ * "signed-off", &handle,
+ * <signals.PurpleCallback> signal_signed_off_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "connection-error":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_connections_get_handle(), __pyx_k_415, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_signed_off_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":307
+ * "signed-off", &handle,
+ * <signals.PurpleCallback> signal_signed_off_cb, NULL)
+ * elif name == "connection-error": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * connection.purple_connections_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_416, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":311
+ * connection.purple_connections_get_handle(),
+ * "connection-error", &handle,
+ * <signals.PurpleCallback> signal_connection_error_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "buddy-signed-on":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_connections_get_handle(), __pyx_k_417, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_connection_error_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":312
+ * "connection-error", &handle,
+ * <signals.PurpleCallback> signal_connection_error_cb, NULL)
+ * elif name == "buddy-signed-on": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * blist.purple_blist_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_418, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":316
+ * blist.purple_blist_get_handle(),
+ * "buddy-signed-on", &handle,
+ * <signals.PurpleCallback> signal_buddy_signed_on_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "buddy-signed-off":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_blist_get_handle(), __pyx_k_419, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_buddy_signed_on_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":317
+ * "buddy-signed-on", &handle,
+ * <signals.PurpleCallback> signal_buddy_signed_on_cb, NULL)
+ * elif name == "buddy-signed-off": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * blist.purple_blist_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_420, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":321
+ * blist.purple_blist_get_handle(),
+ * "buddy-signed-off", &handle,
+ * <signals.PurpleCallback> signal_buddy_signed_off_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "receiving-im-msg":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_blist_get_handle(), __pyx_k_421, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_buddy_signed_off_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":322
+ * "buddy-signed-off", &handle,
+ * <signals.PurpleCallback> signal_buddy_signed_off_cb, NULL)
+ * elif name == "receiving-im-msg": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * conversation.purple_conversations_get_handle(),
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_422, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":326
+ * conversation.purple_conversations_get_handle(),
+ * "receiving-im-msg", &handle,
+ * <signals.PurpleCallback> signal_receiving_im_msg_cb, NULL) # <<<<<<<<<<<<<<
+ * elif name == "jabber-receiving-xmlnode":
+ * signals.purple_signal_connect(
+ */
+ purple_signal_connect(purple_conversations_get_handle(), __pyx_k_423, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_signal_receiving_im_msg_cb), NULL);
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":327
+ * "receiving-im-msg", &handle,
+ * <signals.PurpleCallback> signal_receiving_im_msg_cb, NULL)
+ * elif name == "jabber-receiving-xmlnode": # <<<<<<<<<<<<<<
+ * signals.purple_signal_connect(
+ * jabber, "jabber-receiving-xmlnode", &handle,
+ */
+ __pyx_2 = PyObject_RichCompare(__pyx_v_name, __pyx_kp_424, Py_EQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":330
+ * signals.purple_signal_connect(
+ * jabber, "jabber-receiving-xmlnode", &handle,
+ * <signals.PurpleCallback> jabber_receiving_xmlnode_cb, NULL) # <<<<<<<<<<<<<<
+ *
+ * def accounts_get_all(self):
+ */
+ purple_signal_connect(__pyx_v_jabber, __pyx_k_425, (&__pyx_v_handle), ((void (*)(void))__pyx_f_6purple_jabber_receiving_xmlnode_cb), NULL);
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Purple.signal_connect");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":332
+ * <signals.PurpleCallback> jabber_receiving_xmlnode_cb, NULL)
+ *
+ * def accounts_get_all(self): # <<<<<<<<<<<<<<
+ * cdef glib.GList *iter
+ * cdef account.PurpleAccount *acc
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_accounts_get_all(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple_accounts_get_all(PyObject *__pyx_v_self, PyObject *unused) {
+ GList *__pyx_v_iter;
+ PurpleAccount *__pyx_v_acc;
+ char *__pyx_v_username;
+ char *__pyx_v_protocol_id;
+ PyObject *__pyx_v_account_list;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_account_list = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":338
+ * cdef char *protocol_id
+ *
+ * iter = account.purple_accounts_get_all() # <<<<<<<<<<<<<<
+ * account_list = []
+ *
+ */
+ __pyx_v_iter = purple_accounts_get_all();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":339
+ *
+ * iter = account.purple_accounts_get_all()
+ * account_list = [] # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_account_list);
+ __pyx_v_account_list = ((PyObject *)__pyx_1);
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":341
+ * account_list = []
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ * acc = <account.PurpleAccount *> iter.data
+ *
+ */
+ while (1) {
+ __pyx_2 = (__pyx_v_iter != 0);
+ if (!__pyx_2) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":342
+ *
+ * while iter:
+ * acc = <account.PurpleAccount *> iter.data # <<<<<<<<<<<<<<
+ *
+ * if <account.PurpleAccount *>acc:
+ */
+ __pyx_v_acc = ((PurpleAccount *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":344
+ * acc = <account.PurpleAccount *> iter.data
+ *
+ * if <account.PurpleAccount *>acc: # <<<<<<<<<<<<<<
+ * username = <char *> account.purple_account_get_username(acc)
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ */
+ __pyx_2 = (((PurpleAccount *)__pyx_v_acc) != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":345
+ *
+ * if <account.PurpleAccount *>acc:
+ * username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ *
+ */
+ __pyx_v_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":346
+ * if <account.PurpleAccount *>acc:
+ * username = <char *> account.purple_account_get_username(acc)
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc) # <<<<<<<<<<<<<<
+ *
+ * if username != NULL and protocol_id != NULL:
+ */
+ __pyx_v_protocol_id = ((char *)purple_account_get_protocol_id(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":348
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ *
+ * if username != NULL and protocol_id != NULL: # <<<<<<<<<<<<<<
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self))
+ */
+ __pyx_2 = (__pyx_v_username != NULL);
+ if (__pyx_2) {
+ __pyx_2 = (__pyx_v_protocol_id != NULL);
+ }
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":349
+ *
+ * if username != NULL and protocol_id != NULL:
+ * account_list.append(Account(username, \ # <<<<<<<<<<<<<<
+ * Protocol(protocol_id), self))
+ * iter = iter.next
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(__pyx_v_username); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":350
+ * if username != NULL and protocol_id != NULL:
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self)) # <<<<<<<<<<<<<<
+ * iter = iter.next
+ *
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(__pyx_v_protocol_id); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Protocol)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __pyx_4 = PyTuple_New(3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_1);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
+ Py_INCREF(__pyx_v_self);
+ PyTuple_SET_ITEM(__pyx_4, 2, __pyx_v_self);
+ __pyx_1 = 0;
+ __pyx_3 = 0;
+ __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Account)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __pyx_3 = __Pyx_PyObject_Append(__pyx_v_account_list, __pyx_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":351
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self))
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * return account_list
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":353
+ * iter = iter.next
+ *
+ * return account_list # <<<<<<<<<<<<<<
+ *
+ * def accounts_get_all_active(self):
+ */
+ Py_INCREF(__pyx_v_account_list);
+ __pyx_r = __pyx_v_account_list;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Purple.accounts_get_all");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_account_list);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":355
+ * return account_list
+ *
+ * def accounts_get_all_active(self): # <<<<<<<<<<<<<<
+ * cdef glib.GList *iter
+ * cdef account.PurpleAccount *acc
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_accounts_get_all_active(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple_accounts_get_all_active(PyObject *__pyx_v_self, PyObject *unused) {
+ GList *__pyx_v_iter;
+ PurpleAccount *__pyx_v_acc;
+ char *__pyx_v_username;
+ char *__pyx_v_protocol_id;
+ PyObject *__pyx_v_account_list;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_account_list = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":361
+ * cdef char *protocol_id
+ *
+ * iter = account.purple_accounts_get_all_active() # <<<<<<<<<<<<<<
+ * account_list = []
+ *
+ */
+ __pyx_v_iter = purple_accounts_get_all_active();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":362
+ *
+ * iter = account.purple_accounts_get_all_active()
+ * account_list = [] # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_account_list);
+ __pyx_v_account_list = ((PyObject *)__pyx_1);
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":364
+ * account_list = []
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ * acc = <account.PurpleAccount *> iter.data
+ *
+ */
+ while (1) {
+ __pyx_2 = (__pyx_v_iter != 0);
+ if (!__pyx_2) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":365
+ *
+ * while iter:
+ * acc = <account.PurpleAccount *> iter.data # <<<<<<<<<<<<<<
+ *
+ * if <account.PurpleAccount *>acc:
+ */
+ __pyx_v_acc = ((PurpleAccount *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":367
+ * acc = <account.PurpleAccount *> iter.data
+ *
+ * if <account.PurpleAccount *>acc: # <<<<<<<<<<<<<<
+ * username = <char *> account.purple_account_get_username(acc)
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ */
+ __pyx_2 = (((PurpleAccount *)__pyx_v_acc) != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":368
+ *
+ * if <account.PurpleAccount *>acc:
+ * username = <char *> account.purple_account_get_username(acc) # <<<<<<<<<<<<<<
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ *
+ */
+ __pyx_v_username = ((char *)purple_account_get_username(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":369
+ * if <account.PurpleAccount *>acc:
+ * username = <char *> account.purple_account_get_username(acc)
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc) # <<<<<<<<<<<<<<
+ *
+ * if username != NULL and protocol_id != NULL:
+ */
+ __pyx_v_protocol_id = ((char *)purple_account_get_protocol_id(__pyx_v_acc));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":371
+ * protocol_id = <char *> account.purple_account_get_protocol_id(acc)
+ *
+ * if username != NULL and protocol_id != NULL: # <<<<<<<<<<<<<<
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self))
+ */
+ __pyx_2 = (__pyx_v_username != NULL);
+ if (__pyx_2) {
+ __pyx_2 = (__pyx_v_protocol_id != NULL);
+ }
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":372
+ *
+ * if username != NULL and protocol_id != NULL:
+ * account_list.append(Account(username, \ # <<<<<<<<<<<<<<
+ * Protocol(protocol_id), self))
+ * iter = iter.next
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(__pyx_v_username); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":373
+ * if username != NULL and protocol_id != NULL:
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self)) # <<<<<<<<<<<<<<
+ * iter = iter.next
+ *
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(__pyx_v_protocol_id); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Protocol)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __pyx_4 = PyTuple_New(3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_1);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
+ Py_INCREF(__pyx_v_self);
+ PyTuple_SET_ITEM(__pyx_4, 2, __pyx_v_self);
+ __pyx_1 = 0;
+ __pyx_3 = 0;
+ __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Account)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __pyx_3 = __Pyx_PyObject_Append(__pyx_v_account_list, __pyx_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":374
+ * account_list.append(Account(username, \
+ * Protocol(protocol_id), self))
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * return account_list
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":376
+ * iter = iter.next
+ *
+ * return account_list # <<<<<<<<<<<<<<
+ *
+ * def protocols_get_all(self):
+ */
+ Py_INCREF(__pyx_v_account_list);
+ __pyx_r = __pyx_v_account_list;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Purple.accounts_get_all_active");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_account_list);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":378
+ * return account_list
+ *
+ * def protocols_get_all(self): # <<<<<<<<<<<<<<
+ * cdef glib.GList *iter
+ * cdef plugin.PurplePlugin *pp
+ */
+
+static PyObject *__pyx_pf_6purple_6Purple_protocols_get_all(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_6Purple_protocols_get_all(PyObject *__pyx_v_self, PyObject *unused) {
+ GList *__pyx_v_iter;
+ PurplePlugin *__pyx_v_pp;
+ PyObject *__pyx_v_protocol_list;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ __pyx_v_protocol_list = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":382
+ * cdef plugin.PurplePlugin *pp
+ *
+ * iter = plugin.purple_plugins_get_protocols() # <<<<<<<<<<<<<<
+ * protocol_list = []
+ * while iter:
+ */
+ __pyx_v_iter = purple_plugins_get_protocols();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":383
+ *
+ * iter = plugin.purple_plugins_get_protocols()
+ * protocol_list = [] # <<<<<<<<<<<<<<
+ * while iter:
+ * pp = <plugin.PurplePlugin*> iter.data
+ */
+ __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_protocol_list);
+ __pyx_v_protocol_list = ((PyObject *)__pyx_1);
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":384
+ * iter = plugin.purple_plugins_get_protocols()
+ * protocol_list = []
+ * while iter: # <<<<<<<<<<<<<<
+ * pp = <plugin.PurplePlugin*> iter.data
+ * if pp.info and pp.info.name:
+ */
+ while (1) {
+ __pyx_2 = (__pyx_v_iter != 0);
+ if (!__pyx_2) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":385
+ * protocol_list = []
+ * while iter:
+ * pp = <plugin.PurplePlugin*> iter.data # <<<<<<<<<<<<<<
+ * if pp.info and pp.info.name:
+ * protocol_list.append(Protocol(pp.info.id))
+ */
+ __pyx_v_pp = ((PurplePlugin *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":386
+ * while iter:
+ * pp = <plugin.PurplePlugin*> iter.data
+ * if pp.info and pp.info.name: # <<<<<<<<<<<<<<
+ * protocol_list.append(Protocol(pp.info.id))
+ * iter = iter.next
+ */
+ __pyx_2 = (__pyx_v_pp->info != 0);
+ if (__pyx_2) {
+ __pyx_2 = (__pyx_v_pp->info->name != 0);
+ }
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":387
+ * pp = <plugin.PurplePlugin*> iter.data
+ * if pp.info and pp.info.name:
+ * protocol_list.append(Protocol(pp.info.id)) # <<<<<<<<<<<<<<
+ * iter = iter.next
+ * return protocol_list
+ */
+ __pyx_1 = __Pyx_PyBytes_FromString(__pyx_v_pp->info->id); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Protocol)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ __pyx_3 = __Pyx_PyObject_Append(__pyx_v_protocol_list, __pyx_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":388
+ * if pp.info and pp.info.name:
+ * protocol_list.append(Protocol(pp.info.id))
+ * iter = iter.next # <<<<<<<<<<<<<<
+ * return protocol_list
+ *
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":389
+ * protocol_list.append(Protocol(pp.info.id))
+ * iter = iter.next
+ * return protocol_list # <<<<<<<<<<<<<<
+ *
+ * include "protocol.pyx"
+ */
+ Py_INCREF(__pyx_v_protocol_list);
+ __pyx_r = __pyx_v_protocol_list;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Purple.protocols_get_all");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_protocol_list);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":30
+ * cdef object __exists
+ *
+ * def __init__(self, id): # <<<<<<<<<<<<<<
+ * self.__id = id
+ *
+ */
+
+static int __pyx_pf_6purple_8Protocol___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_8Protocol___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_id = 0;
+ int __pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_id,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[1] = {0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_id);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_id = values[0];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_id = PyTuple_GET_ITEM(__pyx_args, 0);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Protocol.__init__");
+ return -1;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":31
+ *
+ * def __init__(self, id):
+ * self.__id = id # <<<<<<<<<<<<<<
+ *
+ * if self._get_structure() != NULL:
+ */
+ Py_INCREF(__pyx_v_id);
+ Py_DECREF(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__id);
+ ((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__id = __pyx_v_id;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":33
+ * self.__id = id
+ *
+ * if self._get_structure() != NULL: # <<<<<<<<<<<<<<
+ * self.__exists = True
+ * else:
+ */
+ __pyx_1 = (((struct __pyx_vtabstruct_6purple_Protocol *)((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)) != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":34
+ *
+ * if self._get_structure() != NULL:
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * else:
+ * self.__exists = False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":36
+ * self.__exists = True
+ * else:
+ * self.__exists = False # <<<<<<<<<<<<<<
+ *
+ * cdef plugin.PurplePlugin *_get_structure(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Protocol.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":38
+ * self.__exists = False
+ *
+ * cdef plugin.PurplePlugin *_get_structure(self): # <<<<<<<<<<<<<<
+ * return plugin.purple_plugins_find_with_id(self.__id)
+ *
+ */
+
+static PurplePlugin *__pyx_f_6purple_8Protocol__get_structure(struct __pyx_obj_6purple_Protocol *__pyx_v_self) {
+ PurplePlugin *__pyx_r;
+ char *__pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":39
+ *
+ * cdef plugin.PurplePlugin *_get_structure(self):
+ * return plugin.purple_plugins_find_with_id(self.__id) # <<<<<<<<<<<<<<
+ *
+ * def __get_exists(self):
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_self->__id); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = purple_plugins_find_with_id(__pyx_1);
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_WriteUnraisable("purple.Protocol._get_structure");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":41
+ * return plugin.purple_plugins_find_with_id(self.__id)
+ *
+ * def __get_exists(self): # <<<<<<<<<<<<<<
+ * return self.__exists
+ * exists = property(__get_exists)
+ */
+
+static PyObject *__pyx_pf_6purple_8Protocol___get_exists(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_8Protocol___get_exists(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":42
+ *
+ * def __get_exists(self):
+ * return self.__exists # <<<<<<<<<<<<<<
+ * exists = property(__get_exists)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists);
+ __pyx_r = ((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":45
+ * exists = property(__get_exists)
+ *
+ * def __get_id(self): # <<<<<<<<<<<<<<
+ * return self.__id
+ * id = property(__get_id)
+ */
+
+static PyObject *__pyx_pf_6purple_8Protocol___get_id(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_8Protocol___get_id(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":46
+ *
+ * def __get_id(self):
+ * return self.__id # <<<<<<<<<<<<<<
+ * id = property(__get_id)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__id);
+ __pyx_r = ((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__id;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":49
+ * id = property(__get_id)
+ *
+ * def __get_name(self): # <<<<<<<<<<<<<<
+ * cdef char *name = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_8Protocol___get_name(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_8Protocol___get_name(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_name;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":50
+ *
+ * def __get_name(self):
+ * cdef char *name = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * name = <char *> plugin.purple_plugin_get_name(self._get_structure())
+ */
+ __pyx_v_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":51
+ * def __get_name(self):
+ * cdef char *name = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * name = <char *> plugin.purple_plugin_get_name(self._get_structure())
+ * if name != NULL:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":52
+ * cdef char *name = NULL
+ * if self.__exists:
+ * name = <char *> plugin.purple_plugin_get_name(self._get_structure()) # <<<<<<<<<<<<<<
+ * if name != NULL:
+ * return name
+ */
+ __pyx_v_name = ((char *)purple_plugin_get_name(((struct __pyx_vtabstruct_6purple_Protocol *)((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":53
+ * if self.__exists:
+ * name = <char *> plugin.purple_plugin_get_name(self._get_structure())
+ * if name != NULL: # <<<<<<<<<<<<<<
+ * return name
+ * else:
+ */
+ __pyx_1 = (__pyx_v_name != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":54
+ * name = <char *> plugin.purple_plugin_get_name(self._get_structure())
+ * if name != NULL:
+ * return name # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":56
+ * return name
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * return None
+ * name = property(__get_name)
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":57
+ * else:
+ * return None
+ * return None # <<<<<<<<<<<<<<
+ * name = property(__get_name)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Protocol.__get_name");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":60
+ * name = property(__get_name)
+ *
+ * def __get_options_labels(self): # <<<<<<<<<<<<<<
+ * cdef prpl.PurplePluginProtocolInfo *prpl_info
+ * cdef glib.GList *iter
+ */
+
+static PyObject *__pyx_pf_6purple_8Protocol___get_options_labels(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_8Protocol___get_options_labels(PyObject *__pyx_v_self, PyObject *unused) {
+ PurplePluginProtocolInfo *__pyx_v_prpl_info;
+ GList *__pyx_v_iter;
+ PurpleAccountOption *__pyx_v_option;
+ PurplePrefType __pyx_v_type;
+ const char *__pyx_v_label_name;
+ const char *__pyx_v_setting;
+ PyObject *__pyx_v_po;
+ PyObject *__pyx_v_sett;
+ PyObject *__pyx_v_label;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_po = Py_None; Py_INCREF(Py_None);
+ __pyx_v_sett = Py_None; Py_INCREF(Py_None);
+ __pyx_v_label = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":68
+ * cdef const_char *setting
+ *
+ * if not self.__exists: # <<<<<<<<<<<<<<
+ * return None
+ *
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = (!__pyx_1);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":69
+ *
+ * if not self.__exists:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure())
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":71
+ * return None
+ *
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure()) # <<<<<<<<<<<<<<
+ *
+ * po = {}
+ */
+ __pyx_v_prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(((struct __pyx_vtabstruct_6purple_Protocol *)((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":73
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure())
+ *
+ * po = {} # <<<<<<<<<<<<<<
+ *
+ * iter = prpl_info.protocol_options
+ */
+ __pyx_3 = PyDict_New(); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_po);
+ __pyx_v_po = ((PyObject *)__pyx_3);
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":75
+ * po = {}
+ *
+ * iter = prpl_info.protocol_options # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_v_iter = __pyx_v_prpl_info->protocol_options;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":77
+ * iter = prpl_info.protocol_options
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ */
+ while (1) {
+ __pyx_1 = (__pyx_v_iter != 0);
+ if (!__pyx_1) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":79
+ * while iter:
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data # <<<<<<<<<<<<<<
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = accountopt.purple_account_option_get_text(option)
+ */
+ __pyx_v_option = ((PurpleAccountOption *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":80
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option) # <<<<<<<<<<<<<<
+ * label_name = accountopt.purple_account_option_get_text(option)
+ * setting = accountopt.purple_account_option_get_setting(option)
+ */
+ __pyx_v_type = purple_account_option_get_type(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":81
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = accountopt.purple_account_option_get_text(option) # <<<<<<<<<<<<<<
+ * setting = accountopt.purple_account_option_get_setting(option)
+ *
+ */
+ __pyx_v_label_name = purple_account_option_get_text(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":82
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = accountopt.purple_account_option_get_text(option)
+ * setting = accountopt.purple_account_option_get_setting(option) # <<<<<<<<<<<<<<
+ *
+ * sett = str(<char *> setting)
+ */
+ __pyx_v_setting = purple_account_option_get_setting(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":84
+ * setting = accountopt.purple_account_option_get_setting(option)
+ *
+ * sett = str(<char *> setting) # <<<<<<<<<<<<<<
+ * label = str(<char *> label_name)
+ *
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_setting)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_sett);
+ __pyx_v_sett = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":85
+ *
+ * sett = str(<char *> setting)
+ * label = str(<char *> label_name) # <<<<<<<<<<<<<<
+ *
+ * iter = iter.next
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_label_name)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_label);
+ __pyx_v_label = __pyx_4;
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":87
+ * label = str(<char *> label_name)
+ *
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * po[sett] = label
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":89
+ * iter = iter.next
+ *
+ * po[sett] = label # <<<<<<<<<<<<<<
+ *
+ * return po
+ */
+ if (PyObject_SetItem(__pyx_v_po, __pyx_v_sett, __pyx_v_label) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":91
+ * po[sett] = label
+ *
+ * return po # <<<<<<<<<<<<<<
+ * options_labels = property(__get_options_labels)
+ *
+ */
+ Py_INCREF(__pyx_v_po);
+ __pyx_r = __pyx_v_po;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Protocol.__get_options_labels");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_po);
+ Py_DECREF(__pyx_v_sett);
+ Py_DECREF(__pyx_v_label);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":94
+ * options_labels = property(__get_options_labels)
+ *
+ * def __get_options_values(self): # <<<<<<<<<<<<<<
+ * cdef prpl.PurplePluginProtocolInfo *prpl_info
+ * cdef glib.GList *iter
+ */
+
+static PyObject *__pyx_pf_6purple_8Protocol___get_options_values(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_8Protocol___get_options_values(PyObject *__pyx_v_self, PyObject *unused) {
+ PurplePluginProtocolInfo *__pyx_v_prpl_info;
+ GList *__pyx_v_iter;
+ PurpleAccountOption *__pyx_v_option;
+ PurplePrefType __pyx_v_type;
+ const char *__pyx_v_str_value;
+ const char *__pyx_v_setting;
+ int __pyx_v_int_value;
+ gboolean __pyx_v_bool_value;
+ PyObject *__pyx_v_po;
+ PyObject *__pyx_v_sett;
+ PyObject *__pyx_v_val;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_po = Py_None; Py_INCREF(Py_None);
+ __pyx_v_sett = Py_None; Py_INCREF(Py_None);
+ __pyx_v_val = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":104
+ * cdef glib.gboolean bool_value
+ *
+ * if not self.__exists: # <<<<<<<<<<<<<<
+ * return None
+ *
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = (!__pyx_1);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":105
+ *
+ * if not self.__exists:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure())
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":107
+ * return None
+ *
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure()) # <<<<<<<<<<<<<<
+ *
+ * po = {}
+ */
+ __pyx_v_prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(((struct __pyx_vtabstruct_6purple_Protocol *)((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Protocol *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":109
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(self._get_structure())
+ *
+ * po = {} # <<<<<<<<<<<<<<
+ *
+ * iter = prpl_info.protocol_options
+ */
+ __pyx_3 = PyDict_New(); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_po);
+ __pyx_v_po = ((PyObject *)__pyx_3);
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":111
+ * po = {}
+ *
+ * iter = prpl_info.protocol_options # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_v_iter = __pyx_v_prpl_info->protocol_options;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":113
+ * iter = prpl_info.protocol_options
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ */
+ while (1) {
+ __pyx_1 = (__pyx_v_iter != 0);
+ if (!__pyx_1) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":115
+ * while iter:
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data # <<<<<<<<<<<<<<
+ * type = accountopt.purple_account_option_get_type(option)
+ * setting = accountopt.purple_account_option_get_setting(option)
+ */
+ __pyx_v_option = ((PurpleAccountOption *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":116
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option) # <<<<<<<<<<<<<<
+ * setting = accountopt.purple_account_option_get_setting(option)
+ *
+ */
+ __pyx_v_type = purple_account_option_get_type(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":117
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option)
+ * setting = accountopt.purple_account_option_get_setting(option) # <<<<<<<<<<<<<<
+ *
+ * sett = str(<char *> setting)
+ */
+ __pyx_v_setting = purple_account_option_get_setting(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":119
+ * setting = accountopt.purple_account_option_get_setting(option)
+ *
+ * sett = str(<char *> setting) # <<<<<<<<<<<<<<
+ *
+ * if type == prefs.PURPLE_PREF_STRING:
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_setting)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_sett);
+ __pyx_v_sett = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":121
+ * sett = str(<char *> setting)
+ *
+ * if type == prefs.PURPLE_PREF_STRING: # <<<<<<<<<<<<<<
+ * str_value = accountopt.purple_account_option_get_default_string(option)
+ * # Hack to set string "" as default value when the
+ */
+ __pyx_2 = (__pyx_v_type == PURPLE_PREF_STRING);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":122
+ *
+ * if type == prefs.PURPLE_PREF_STRING:
+ * str_value = accountopt.purple_account_option_get_default_string(option) # <<<<<<<<<<<<<<
+ * # Hack to set string "" as default value when the
+ * # protocol's option is NULL
+ */
+ __pyx_v_str_value = purple_account_option_get_default_string(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":125
+ * # Hack to set string "" as default value when the
+ * # protocol's option is NULL
+ * if str_value == NULL: # <<<<<<<<<<<<<<
+ * str_value = ""
+ * val = str(<char *> str_value)
+ */
+ __pyx_1 = (__pyx_v_str_value == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":126
+ * # protocol's option is NULL
+ * if str_value == NULL:
+ * str_value = "" # <<<<<<<<<<<<<<
+ * val = str(<char *> str_value)
+ *
+ */
+ __pyx_v_str_value = __pyx_k_426;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":127
+ * if str_value == NULL:
+ * str_value = ""
+ * val = str(<char *> str_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_INT:
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_str_value)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":129
+ * val = str(<char *> str_value)
+ *
+ * elif type == prefs.PURPLE_PREF_INT: # <<<<<<<<<<<<<<
+ * int_value = accountopt.purple_account_option_get_default_int(option)
+ * val = int(int_value)
+ */
+ __pyx_2 = (__pyx_v_type == PURPLE_PREF_INT);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":130
+ *
+ * elif type == prefs.PURPLE_PREF_INT:
+ * int_value = accountopt.purple_account_option_get_default_int(option) # <<<<<<<<<<<<<<
+ * val = int(int_value)
+ *
+ */
+ __pyx_v_int_value = purple_account_option_get_default_int(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":131
+ * elif type == prefs.PURPLE_PREF_INT:
+ * int_value = accountopt.purple_account_option_get_default_int(option)
+ * val = int(int_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ */
+ __pyx_3 = PyInt_FromLong(__pyx_v_int_value); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)&PyInt_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":133
+ * val = int(int_value)
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN: # <<<<<<<<<<<<<<
+ * bool_value = accountopt.purple_account_option_get_default_bool(option)
+ *
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_BOOLEAN);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":134
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ * bool_value = accountopt.purple_account_option_get_default_bool(option) # <<<<<<<<<<<<<<
+ *
+ * val = bool(bool_value)
+ */
+ __pyx_v_bool_value = purple_account_option_get_default_bool(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":136
+ * bool_value = accountopt.purple_account_option_get_default_bool(option)
+ *
+ * val = bool(bool_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ */
+ __pyx_4 = PyInt_FromLong(__pyx_v_bool_value); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyBool_Type)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":138
+ * val = bool(bool_value)
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST: # <<<<<<<<<<<<<<
+ * str_value = accountopt.purple_account_option_get_default_list_value(option)
+ *
+ */
+ __pyx_2 = (__pyx_v_type == PURPLE_PREF_STRING_LIST);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":139
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ * str_value = accountopt.purple_account_option_get_default_list_value(option) # <<<<<<<<<<<<<<
+ *
+ * val = str(<char *> str_value)
+ */
+ __pyx_v_str_value = purple_account_option_get_default_list_value(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":141
+ * str_value = accountopt.purple_account_option_get_default_list_value(option)
+ *
+ * val = str(<char *> str_value) # <<<<<<<<<<<<<<
+ *
+ * iter = iter.next
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)__pyx_v_str_value)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":143
+ * val = str(<char *> str_value)
+ *
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * po[sett] = val
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":145
+ * iter = iter.next
+ *
+ * po[sett] = val # <<<<<<<<<<<<<<
+ *
+ * return po
+ */
+ if (PyObject_SetItem(__pyx_v_po, __pyx_v_sett, __pyx_v_val) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":147
+ * po[sett] = val
+ *
+ * return po # <<<<<<<<<<<<<<
+ * options_values = property(__get_options_values)
+ */
+ Py_INCREF(__pyx_v_po);
+ __pyx_r = __pyx_v_po;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Protocol.__get_options_values");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_po);
+ Py_DECREF(__pyx_v_sett);
+ Py_DECREF(__pyx_v_val);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":25
+ * cdef proxy.PurpleProxyType c_type
+ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_NONE
+ *
+ */
+
+static int __pyx_pf_6purple_13ProxyInfoType___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_13ProxyInfoType___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ int __pyx_r;
+ if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
+ if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":26
+ *
+ * def __init__(self):
+ * self.c_type = proxy.PURPLE_PROXY_NONE # <<<<<<<<<<<<<<
+ *
+ * def get_NONE(self):
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_NONE;
+
+ __pyx_r = 0;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":28
+ * self.c_type = proxy.PURPLE_PROXY_NONE
+ *
+ * def get_NONE(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_NONE
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_NONE(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_NONE(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":29
+ *
+ * def get_NONE(self):
+ * self.c_type = proxy.PURPLE_PROXY_NONE # <<<<<<<<<<<<<<
+ * return self
+ * NONE = property(get_NONE)
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_NONE;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":30
+ * def get_NONE(self):
+ * self.c_type = proxy.PURPLE_PROXY_NONE
+ * return self # <<<<<<<<<<<<<<
+ * NONE = property(get_NONE)
+ *
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":33
+ * NONE = property(get_NONE)
+ *
+ * def get_USE_GLOBAL(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_USE_GLOBAL
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_USE_GLOBAL(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_USE_GLOBAL(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":34
+ *
+ * def get_USE_GLOBAL(self):
+ * self.c_type = proxy.PURPLE_PROXY_USE_GLOBAL # <<<<<<<<<<<<<<
+ * return self
+ * USE_GLOBAL = property(get_USE_GLOBAL)
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_USE_GLOBAL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":35
+ * def get_USE_GLOBAL(self):
+ * self.c_type = proxy.PURPLE_PROXY_USE_GLOBAL
+ * return self # <<<<<<<<<<<<<<
+ * USE_GLOBAL = property(get_USE_GLOBAL)
+ *
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":38
+ * USE_GLOBAL = property(get_USE_GLOBAL)
+ *
+ * def get_HTTP(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_HTTP
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_HTTP(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_HTTP(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":39
+ *
+ * def get_HTTP(self):
+ * self.c_type = proxy.PURPLE_PROXY_HTTP # <<<<<<<<<<<<<<
+ * return self
+ * HTTP = property(get_HTTP)
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_HTTP;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":40
+ * def get_HTTP(self):
+ * self.c_type = proxy.PURPLE_PROXY_HTTP
+ * return self # <<<<<<<<<<<<<<
+ * HTTP = property(get_HTTP)
+ *
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":43
+ * HTTP = property(get_HTTP)
+ *
+ * def get_SOCKS4(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS4
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_SOCKS4(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_SOCKS4(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":44
+ *
+ * def get_SOCKS4(self):
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS4 # <<<<<<<<<<<<<<
+ * return self
+ *
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_SOCKS4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":45
+ * def get_SOCKS4(self):
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS4
+ * return self # <<<<<<<<<<<<<<
+ *
+ * def get_SOCKS5(self):
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":47
+ * return self
+ *
+ * def get_SOCKS5(self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS5
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_SOCKS5(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_SOCKS5(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":48
+ *
+ * def get_SOCKS5(self):
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS5 # <<<<<<<<<<<<<<
+ * return self
+ *
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_SOCKS5;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":49
+ * def get_SOCKS5(self):
+ * self.c_type = proxy.PURPLE_PROXY_SOCKS5
+ * return self # <<<<<<<<<<<<<<
+ *
+ * def get_USE_ENVVAR (self):
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":51
+ * return self
+ *
+ * def get_USE_ENVVAR (self): # <<<<<<<<<<<<<<
+ * self.c_type = proxy.PURPLE_PROXY_USE_ENVVAR
+ * return self
+ */
+
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_USE_ENVVAR(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_13ProxyInfoType_get_USE_ENVVAR(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":52
+ *
+ * def get_USE_ENVVAR (self):
+ * self.c_type = proxy.PURPLE_PROXY_USE_ENVVAR # <<<<<<<<<<<<<<
+ * return self
+ * USE_ENVVAR = property(get_USE_ENVVAR)
+ */
+ ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_self)->c_type = PURPLE_PROXY_USE_ENVVAR;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":53
+ * def get_USE_ENVVAR (self):
+ * self.c_type = proxy.PURPLE_PROXY_USE_ENVVAR
+ * return self # <<<<<<<<<<<<<<
+ * USE_ENVVAR = property(get_USE_ENVVAR)
+ *
+ */
+ Py_INCREF(__pyx_v_self);
+ __pyx_r = __pyx_v_self;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":61
+ * cdef object types
+ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.c_proxyinfo = NULL
+ *
+ */
+
+static int __pyx_pf_6purple_9ProxyInfo___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_9ProxyInfo___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ int __pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
+ if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":62
+ *
+ * def __init__(self):
+ * self.c_proxyinfo = NULL # <<<<<<<<<<<<<<
+ *
+ * self.types = {"HTTP": proxy.PURPLE_PROXY_HTTP,
+ */
+ ((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":64
+ * self.c_proxyinfo = NULL
+ *
+ * self.types = {"HTTP": proxy.PURPLE_PROXY_HTTP, # <<<<<<<<<<<<<<
+ * "USER_GLOBAL": proxy.PURPLE_PROXY_USE_GLOBAL,
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR,
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_HTTP); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_427, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":65
+ *
+ * self.types = {"HTTP": proxy.PURPLE_PROXY_HTTP,
+ * "USER_GLOBAL": proxy.PURPLE_PROXY_USE_GLOBAL, # <<<<<<<<<<<<<<
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR,
+ * "SOCKS4": proxy.PURPLE_PROXY_SOCKS4,
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_USE_GLOBAL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_428, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":66
+ * self.types = {"HTTP": proxy.PURPLE_PROXY_HTTP,
+ * "USER_GLOBAL": proxy.PURPLE_PROXY_USE_GLOBAL,
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR, # <<<<<<<<<<<<<<
+ * "SOCKS4": proxy.PURPLE_PROXY_SOCKS4,
+ * "SOCKS5": proxy.PURPLE_PROXY_SOCKS5,
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_USE_ENVVAR); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_429, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":67
+ * "USER_GLOBAL": proxy.PURPLE_PROXY_USE_GLOBAL,
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR,
+ * "SOCKS4": proxy.PURPLE_PROXY_SOCKS4, # <<<<<<<<<<<<<<
+ * "SOCKS5": proxy.PURPLE_PROXY_SOCKS5,
+ * "NONE": proxy.PURPLE_PROXY_NONE}
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_SOCKS4); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_430, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":68
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR,
+ * "SOCKS4": proxy.PURPLE_PROXY_SOCKS4,
+ * "SOCKS5": proxy.PURPLE_PROXY_SOCKS5, # <<<<<<<<<<<<<<
+ * "NONE": proxy.PURPLE_PROXY_NONE}
+ *
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_SOCKS5); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_431, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":69
+ * "SOCKS4": proxy.PURPLE_PROXY_SOCKS4,
+ * "SOCKS5": proxy.PURPLE_PROXY_SOCKS5,
+ * "NONE": proxy.PURPLE_PROXY_NONE} # <<<<<<<<<<<<<<
+ *
+ *
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_PROXY_NONE); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_432, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":64
+ * self.c_proxyinfo = NULL
+ *
+ * self.types = {"HTTP": proxy.PURPLE_PROXY_HTTP, # <<<<<<<<<<<<<<
+ * "USER_GLOBAL": proxy.PURPLE_PROXY_USE_GLOBAL,
+ * "USE_ENVVAR": proxy.PURPLE_PROXY_USE_ENVVAR,
+ */
+ Py_DECREF(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->types);
+ ((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->types = ((PyObject *)__pyx_1);
+ __pyx_1 = 0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.ProxyInfo.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":72
+ *
+ *
+ * def set_type(self, ProxyInfoType type): # <<<<<<<<<<<<<<
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_type)
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_type(PyObject *__pyx_v_self, PyObject *__pyx_v_type); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_type(PyObject *__pyx_v_self, PyObject *__pyx_v_type) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_type), __pyx_ptype_6purple_ProxyInfoType, 1, "type", 0))) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":73
+ *
+ * def set_type(self, ProxyInfoType type):
+ * if self.c_proxyinfo: # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_type)
+ *
+ */
+ __pyx_1 = (((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":74
+ * def set_type(self, ProxyInfoType type):
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_type) # <<<<<<<<<<<<<<
+ *
+ * def set_host(self, char *host):
+ */
+ purple_proxy_info_set_type(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo, ((struct __pyx_obj_6purple_ProxyInfoType *)__pyx_v_type)->c_type);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_type");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":76
+ * proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_type)
+ *
+ * def set_host(self, char *host): # <<<<<<<<<<<<<<
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host)
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_host(PyObject *__pyx_v_self, PyObject *__pyx_arg_host); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_host(PyObject *__pyx_v_self, PyObject *__pyx_arg_host) {
+ char *__pyx_v_host;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ assert(__pyx_arg_host); {
+ __pyx_v_host = __Pyx_PyBytes_AsString(__pyx_arg_host); if (unlikely((!__pyx_v_host) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_host");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":77
+ *
+ * def set_host(self, char *host):
+ * if self.c_proxyinfo: # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host)
+ *
+ */
+ __pyx_1 = (((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":78
+ * def set_host(self, char *host):
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host) # <<<<<<<<<<<<<<
+ *
+ * def set_port(self, int port):
+ */
+ purple_proxy_info_set_host(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo, __pyx_v_host);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":80
+ * proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host)
+ *
+ * def set_port(self, int port): # <<<<<<<<<<<<<<
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port)
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_port(PyObject *__pyx_v_self, PyObject *__pyx_arg_port); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_port(PyObject *__pyx_v_self, PyObject *__pyx_arg_port) {
+ int __pyx_v_port;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ assert(__pyx_arg_port); {
+ __pyx_v_port = __pyx_PyInt_int(__pyx_arg_port); if (unlikely((__pyx_v_port == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_port");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":81
+ *
+ * def set_port(self, int port):
+ * if self.c_proxyinfo: # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port)
+ *
+ */
+ __pyx_1 = (((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":82
+ * def set_port(self, int port):
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port) # <<<<<<<<<<<<<<
+ *
+ * def set_username(self, char *username):
+ */
+ purple_proxy_info_set_port(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo, __pyx_v_port);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":84
+ * proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port)
+ *
+ * def set_username(self, char *username): # <<<<<<<<<<<<<<
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username)
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_username(PyObject *__pyx_v_self, PyObject *__pyx_arg_username); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_username(PyObject *__pyx_v_self, PyObject *__pyx_arg_username) {
+ char *__pyx_v_username;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ assert(__pyx_arg_username); {
+ __pyx_v_username = __Pyx_PyBytes_AsString(__pyx_arg_username); if (unlikely((!__pyx_v_username) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_username");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":85
+ *
+ * def set_username(self, char *username):
+ * if self.c_proxyinfo: # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username)
+ *
+ */
+ __pyx_1 = (((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":86
+ * def set_username(self, char *username):
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username) # <<<<<<<<<<<<<<
+ *
+ * def set_password(self, char *password):
+ */
+ purple_proxy_info_set_username(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo, __pyx_v_username);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":88
+ * proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username)
+ *
+ * def set_password(self, char *password): # <<<<<<<<<<<<<<
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password)
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_password(PyObject *__pyx_v_self, PyObject *__pyx_arg_password); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_password(PyObject *__pyx_v_self, PyObject *__pyx_arg_password) {
+ char *__pyx_v_password;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ assert(__pyx_arg_password); {
+ __pyx_v_password = __Pyx_PyBytes_AsString(__pyx_arg_password); if (unlikely((!__pyx_v_password) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_password");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":89
+ *
+ * def set_password(self, char *password):
+ * if self.c_proxyinfo: # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password)
+ *
+ */
+ __pyx_1 = (((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":90
+ * def set_password(self, char *password):
+ * if self.c_proxyinfo:
+ * proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password) # <<<<<<<<<<<<<<
+ *
+ * def get_types(self):
+ */
+ purple_proxy_info_set_password(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->c_proxyinfo, __pyx_v_password);
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":92
+ * proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password)
+ *
+ * def get_types(self): # <<<<<<<<<<<<<<
+ * return self.types.keys()
+ *
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_get_types(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_9ProxyInfo_get_types(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":93
+ *
+ * def get_types(self):
+ * return self.types.keys() # <<<<<<<<<<<<<<
+ *
+ * def set_info(self, acc, info):
+ */
+ __pyx_1 = PyObject_GetAttr(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->types, __pyx_kp_keys); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.ProxyInfo.get_types");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":95
+ * return self.types.keys()
+ *
+ * def set_info(self, acc, info): # <<<<<<<<<<<<<<
+ * ''' @param acc Tuple (username, protocol id) '''
+ * ''' @param info Dictionary {'type': "HTTP", 'port': "1234", '''
+ */
+
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_6purple_9ProxyInfo_set_info[] = " @param acc Tuple (username, protocol id) ";
+static PyObject *__pyx_pf_6purple_9ProxyInfo_set_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_acc = 0;
+ PyObject *__pyx_v_info = 0;
+ PurpleAccount *__pyx_v_c_account;
+ PurpleProxyInfo *__pyx_v_c_proxyinfo;
+ PyObject *__pyx_v_type;
+ PyObject *__pyx_v_host;
+ PyObject *__pyx_v_port;
+ PyObject *__pyx_v_username;
+ PyObject *__pyx_v_password;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ char *__pyx_2;
+ char *__pyx_3;
+ int __pyx_4;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ int __pyx_7;
+ PurpleProxyType __pyx_8;
+ int __pyx_9;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_acc,&__pyx_kp_info,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_acc);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_info);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("set_info", 1, 2, 2, 1); {__pyx_filename = __pyx_f[10]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_info") < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_acc = values[0];
+ __pyx_v_info = values[1];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_acc = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_info = PyTuple_GET_ITEM(__pyx_args, 1);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("set_info", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[10]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.ProxyInfo.set_info");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+ __pyx_v_type = Py_None; Py_INCREF(Py_None);
+ __pyx_v_host = Py_None; Py_INCREF(Py_None);
+ __pyx_v_port = Py_None; Py_INCREF(Py_None);
+ __pyx_v_username = Py_None; Py_INCREF(Py_None);
+ __pyx_v_password = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":102
+ * cdef account.PurpleAccount *c_account
+ * cdef proxy.PurpleProxyInfo *c_proxyinfo
+ * c_account = account.purple_accounts_find(acc[0], acc[1]) # <<<<<<<<<<<<<<
+ *
+ * if c_account == NULL:
+ */
+ __pyx_1 = __Pyx_GetItemInt(__pyx_v_acc, 0, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_1); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = __Pyx_GetItemInt(__pyx_v_acc, 1, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_1); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_v_c_account = purple_accounts_find(__pyx_2, __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":104
+ * c_account = account.purple_accounts_find(acc[0], acc[1])
+ *
+ * if c_account == NULL: # <<<<<<<<<<<<<<
+ * #FIXME: Message error or call a callback handle to error
+ * return False
+ */
+ __pyx_4 = (__pyx_v_c_account == NULL);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":106
+ * if c_account == NULL:
+ * #FIXME: Message error or call a callback handle to error
+ * return False # <<<<<<<<<<<<<<
+ *
+ * c_proxyinfo = account.purple_account_get_proxy_info(c_account)
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":108
+ * return False
+ *
+ * c_proxyinfo = account.purple_account_get_proxy_info(c_account) # <<<<<<<<<<<<<<
+ * if c_proxyinfo == NULL:
+ * c_proxyinfo = proxy.c_purple_proxy_info_new()
+ */
+ __pyx_v_c_proxyinfo = purple_account_get_proxy_info(__pyx_v_c_account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":109
+ *
+ * c_proxyinfo = account.purple_account_get_proxy_info(c_account)
+ * if c_proxyinfo == NULL: # <<<<<<<<<<<<<<
+ * c_proxyinfo = proxy.c_purple_proxy_info_new()
+ * account.purple_account_set_proxy_info(c_account, c_proxyinfo)
+ */
+ __pyx_4 = (__pyx_v_c_proxyinfo == NULL);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":110
+ * c_proxyinfo = account.purple_account_get_proxy_info(c_account)
+ * if c_proxyinfo == NULL:
+ * c_proxyinfo = proxy.c_purple_proxy_info_new() # <<<<<<<<<<<<<<
+ * account.purple_account_set_proxy_info(c_account, c_proxyinfo)
+ *
+ */
+ __pyx_v_c_proxyinfo = purple_proxy_info_new();
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":111
+ * if c_proxyinfo == NULL:
+ * c_proxyinfo = proxy.c_purple_proxy_info_new()
+ * account.purple_account_set_proxy_info(c_account, c_proxyinfo) # <<<<<<<<<<<<<<
+ *
+ * if info.has_key('type') and info['type']:
+ */
+ purple_account_set_proxy_info(__pyx_v_c_account, __pyx_v_c_proxyinfo);
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":113
+ * account.purple_account_set_proxy_info(c_account, c_proxyinfo)
+ *
+ * if info.has_key('type') and info['type']: # <<<<<<<<<<<<<<
+ * type = info['type']
+ * if not type in self.types.keys():
+ */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_info, __pyx_kp_has_key); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyTuple_New(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_433);
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_kp_433);
+ __pyx_6 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_6); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ if (__pyx_4) {
+ __pyx_1 = PyObject_GetItem(__pyx_v_info, __pyx_kp_434); if (!__pyx_1) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ }
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":114
+ *
+ * if info.has_key('type') and info['type']:
+ * type = info['type'] # <<<<<<<<<<<<<<
+ * if not type in self.types.keys():
+ * type = 'HTTP'
+ */
+ __pyx_5 = PyObject_GetItem(__pyx_v_info, __pyx_kp_435); if (!__pyx_5) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_type);
+ __pyx_v_type = __pyx_5;
+ __pyx_5 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":115
+ * if info.has_key('type') and info['type']:
+ * type = info['type']
+ * if not type in self.types.keys(): # <<<<<<<<<<<<<<
+ * type = 'HTTP'
+ * proxy.c_purple_proxy_info_set_type(c_proxyinfo, self.types[type])
+ */
+ __pyx_6 = PyObject_GetAttr(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->types, __pyx_kp_keys); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyObject_Call(__pyx_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ __pyx_7 = (PySequence_Contains(__pyx_1, __pyx_v_type)); if (unlikely(__pyx_7 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_4 = (!__pyx_7);
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":116
+ * type = info['type']
+ * if not type in self.types.keys():
+ * type = 'HTTP' # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_type(c_proxyinfo, self.types[type])
+ *
+ */
+ Py_INCREF(__pyx_kp_436);
+ Py_DECREF(__pyx_v_type);
+ __pyx_v_type = __pyx_kp_436;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":117
+ * if not type in self.types.keys():
+ * type = 'HTTP'
+ * proxy.c_purple_proxy_info_set_type(c_proxyinfo, self.types[type]) # <<<<<<<<<<<<<<
+ *
+ * if info.has_key('host') and info['host']:
+ */
+ __pyx_5 = PyObject_GetItem(((struct __pyx_obj_6purple_ProxyInfo *)__pyx_v_self)->types, __pyx_v_type); if (!__pyx_5) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_8 = ((PurpleProxyType)PyInt_AsLong(__pyx_5)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ purple_proxy_info_set_type(__pyx_v_c_proxyinfo, __pyx_8);
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":119
+ * proxy.c_purple_proxy_info_set_type(c_proxyinfo, self.types[type])
+ *
+ * if info.has_key('host') and info['host']: # <<<<<<<<<<<<<<
+ * host = info['host']
+ * proxy.c_purple_proxy_info_set_host(c_proxyinfo, host)
+ */
+ __pyx_6 = PyObject_GetAttr(__pyx_v_info, __pyx_kp_has_key); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_437);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_437);
+ __pyx_5 = PyObject_Call(__pyx_6, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_7 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_7 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ if (__pyx_7) {
+ __pyx_6 = PyObject_GetItem(__pyx_v_info, __pyx_kp_438); if (!__pyx_6) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_7 = __Pyx_PyObject_IsTrue(__pyx_6); if (unlikely(__pyx_7 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ }
+ if (__pyx_7) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":120
+ *
+ * if info.has_key('host') and info['host']:
+ * host = info['host'] # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_host(c_proxyinfo, host)
+ *
+ */
+ __pyx_1 = PyObject_GetItem(__pyx_v_info, __pyx_kp_439); if (!__pyx_1) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_host);
+ __pyx_v_host = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":121
+ * if info.has_key('host') and info['host']:
+ * host = info['host']
+ * proxy.c_purple_proxy_info_set_host(c_proxyinfo, host) # <<<<<<<<<<<<<<
+ *
+ * if info.has_key('port') and info['port']:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_host); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_proxy_info_set_host(__pyx_v_c_proxyinfo, __pyx_2);
+ goto __pyx_L10;
+ }
+ __pyx_L10:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":123
+ * proxy.c_purple_proxy_info_set_host(c_proxyinfo, host)
+ *
+ * if info.has_key('port') and info['port']: # <<<<<<<<<<<<<<
+ * port = int(info['port'])
+ * proxy.c_purple_proxy_info_set_port(c_proxyinfo, port)
+ */
+ __pyx_5 = PyObject_GetAttr(__pyx_v_info, __pyx_kp_has_key); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_440);
+ PyTuple_SET_ITEM(__pyx_6, 0, __pyx_kp_440);
+ __pyx_1 = PyObject_Call(__pyx_5, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ if (__pyx_4) {
+ __pyx_5 = PyObject_GetItem(__pyx_v_info, __pyx_kp_441); if (!__pyx_5) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ }
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":124
+ *
+ * if info.has_key('port') and info['port']:
+ * port = int(info['port']) # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_port(c_proxyinfo, port)
+ *
+ */
+ __pyx_6 = PyObject_GetItem(__pyx_v_info, __pyx_kp_442); if (!__pyx_6) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_6);
+ __pyx_6 = 0;
+ __pyx_5 = PyObject_Call(((PyObject *)((PyObject*)&PyInt_Type)), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ Py_DECREF(__pyx_v_port);
+ __pyx_v_port = __pyx_5;
+ __pyx_5 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":125
+ * if info.has_key('port') and info['port']:
+ * port = int(info['port'])
+ * proxy.c_purple_proxy_info_set_port(c_proxyinfo, port) # <<<<<<<<<<<<<<
+ *
+ * if info.has_key('username') and info['username']:
+ */
+ __pyx_9 = __pyx_PyInt_int(__pyx_v_port); if (unlikely((__pyx_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_proxy_info_set_port(__pyx_v_c_proxyinfo, __pyx_9);
+ goto __pyx_L11;
+ }
+ __pyx_L11:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":127
+ * proxy.c_purple_proxy_info_set_port(c_proxyinfo, port)
+ *
+ * if info.has_key('username') and info['username']: # <<<<<<<<<<<<<<
+ * username = info['username']
+ * proxy.c_purple_proxy_info_set_username(c_proxyinfo, username)
+ */
+ __pyx_6 = PyObject_GetAttr(__pyx_v_info, __pyx_kp_has_key); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_443);
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_kp_443);
+ __pyx_5 = PyObject_Call(__pyx_6, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ __pyx_7 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_7 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ if (__pyx_7) {
+ __pyx_6 = PyObject_GetItem(__pyx_v_info, __pyx_kp_444); if (!__pyx_6) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_7 = __Pyx_PyObject_IsTrue(__pyx_6); if (unlikely(__pyx_7 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ }
+ if (__pyx_7) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":128
+ *
+ * if info.has_key('username') and info['username']:
+ * username = info['username'] # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_username(c_proxyinfo, username)
+ *
+ */
+ __pyx_1 = PyObject_GetItem(__pyx_v_info, __pyx_kp_445); if (!__pyx_1) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_username);
+ __pyx_v_username = __pyx_1;
+ __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":129
+ * if info.has_key('username') and info['username']:
+ * username = info['username']
+ * proxy.c_purple_proxy_info_set_username(c_proxyinfo, username) # <<<<<<<<<<<<<<
+ *
+ * if info.has_key('password') and info['password']:
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_username); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_proxy_info_set_username(__pyx_v_c_proxyinfo, __pyx_3);
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":131
+ * proxy.c_purple_proxy_info_set_username(c_proxyinfo, username)
+ *
+ * if info.has_key('password') and info['password']: # <<<<<<<<<<<<<<
+ * password = info['password']
+ * proxy.c_purple_proxy_info_set_password(c_proxyinfo, password)
+ */
+ __pyx_5 = PyObject_GetAttr(__pyx_v_info, __pyx_kp_has_key); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_446);
+ PyTuple_SET_ITEM(__pyx_6, 0, __pyx_kp_446);
+ __pyx_1 = PyObject_Call(__pyx_5, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ if (__pyx_4) {
+ __pyx_5 = PyObject_GetItem(__pyx_v_info, __pyx_kp_447); if (!__pyx_5) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ }
+ if (__pyx_4) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":132
+ *
+ * if info.has_key('password') and info['password']:
+ * password = info['password'] # <<<<<<<<<<<<<<
+ * proxy.c_purple_proxy_info_set_password(c_proxyinfo, password)
+ *
+ */
+ __pyx_6 = PyObject_GetItem(__pyx_v_info, __pyx_kp_448); if (!__pyx_6) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_password);
+ __pyx_v_password = __pyx_6;
+ __pyx_6 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":133
+ * if info.has_key('password') and info['password']:
+ * password = info['password']
+ * proxy.c_purple_proxy_info_set_password(c_proxyinfo, password) # <<<<<<<<<<<<<<
+ *
+ * return True
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_password); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_proxy_info_set_password(__pyx_v_c_proxyinfo, __pyx_2);
+ goto __pyx_L13;
+ }
+ __pyx_L13:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":135
+ * proxy.c_purple_proxy_info_set_password(c_proxyinfo, password)
+ *
+ * return True # <<<<<<<<<<<<<<
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ __Pyx_AddTraceback("purple.ProxyInfo.set_info");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_type);
+ Py_DECREF(__pyx_v_host);
+ Py_DECREF(__pyx_v_port);
+ Py_DECREF(__pyx_v_username);
+ Py_DECREF(__pyx_v_password);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":35
+ * cdef object __exists
+ *
+ * def __init__(self, username, protocol, core): # <<<<<<<<<<<<<<
+ * self.__username = username
+ * self.__protocol = protocol
+ */
+
+static int __pyx_pf_6purple_7Account___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_7Account___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_username = 0;
+ PyObject *__pyx_v_protocol = 0;
+ PyObject *__pyx_v_core = 0;
+ int __pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ int __pyx_3;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_username,&__pyx_kp_protocol,&__pyx_kp_core,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[3] = {0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_username);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_protocol);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_core);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_username = values[0];
+ __pyx_v_protocol = values[1];
+ __pyx_v_core = values[2];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_username = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_protocol = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_core = PyTuple_GET_ITEM(__pyx_args, 2);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Account.__init__");
+ return -1;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":36
+ *
+ * def __init__(self, username, protocol, core):
+ * self.__username = username # <<<<<<<<<<<<<<
+ * self.__protocol = protocol
+ * self.__core = core
+ */
+ Py_INCREF(__pyx_v_username);
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__username);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__username = __pyx_v_username;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":37
+ * def __init__(self, username, protocol, core):
+ * self.__username = username
+ * self.__protocol = protocol # <<<<<<<<<<<<<<
+ * self.__core = core
+ *
+ */
+ Py_INCREF(__pyx_v_protocol);
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol = __pyx_v_protocol;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":38
+ * self.__username = username
+ * self.__protocol = protocol
+ * self.__core = core # <<<<<<<<<<<<<<
+ *
+ * if protocol.exists and self._get_structure() != NULL:
+ */
+ Py_INCREF(__pyx_v_core);
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core = __pyx_v_core;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":40
+ * self.__core = core
+ *
+ * if protocol.exists and self._get_structure() != NULL: # <<<<<<<<<<<<<<
+ * self.__exists = True
+ * else:
+ */
+ __pyx_2 = PyObject_GetAttr(__pyx_v_protocol, __pyx_kp_exists); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+ __pyx_1 = (((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)) != NULL);
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":41
+ *
+ * if protocol.exists and self._get_structure() != NULL:
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * else:
+ * self.__exists = False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":43
+ * self.__exists = True
+ * else:
+ * self.__exists = False # <<<<<<<<<<<<<<
+ *
+ * cdef account.PurpleAccount *_get_structure(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":45
+ * self.__exists = False
+ *
+ * cdef account.PurpleAccount *_get_structure(self): # <<<<<<<<<<<<<<
+ * return account.purple_accounts_find(self.__username, \
+ * self.__protocol.id)
+ */
+
+static PurpleAccount *__pyx_f_6purple_7Account__get_structure(struct __pyx_obj_6purple_Account *__pyx_v_self) {
+ PurpleAccount *__pyx_r;
+ char *__pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":46
+ *
+ * cdef account.PurpleAccount *_get_structure(self):
+ * return account.purple_accounts_find(self.__username, \ # <<<<<<<<<<<<<<
+ * self.__protocol.id)
+ *
+ */
+ __pyx_1 = __Pyx_PyBytes_AsString(__pyx_v_self->__username); if (unlikely((!__pyx_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":47
+ * cdef account.PurpleAccount *_get_structure(self):
+ * return account.purple_accounts_find(self.__username, \
+ * self.__protocol.id) # <<<<<<<<<<<<<<
+ *
+ * def __is_connected(self):
+ */
+ __pyx_2 = PyObject_GetAttr(__pyx_v_self->__protocol, __pyx_kp_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = purple_accounts_find(__pyx_1, __pyx_3);
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_WriteUnraisable("purple.Account._get_structure");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":49
+ * self.__protocol.id)
+ *
+ * def __is_connected(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_is_connected(self._get_structure())
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___is_connected(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___is_connected(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":50
+ *
+ * def __is_connected(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return account.purple_account_is_connected(self._get_structure())
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":51
+ * def __is_connected(self):
+ * if self.__exists:
+ * return account.purple_account_is_connected(self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_account_is_connected(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":53
+ * return account.purple_account_is_connected(self._get_structure())
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * is_connected = property(__is_connected)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__is_connected");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":56
+ * is_connected = property(__is_connected)
+ *
+ * def __is_connecting(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_is_connecting(self._get_structure())
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___is_connecting(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___is_connecting(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":57
+ *
+ * def __is_connecting(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return account.purple_account_is_connecting(self._get_structure())
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":58
+ * def __is_connecting(self):
+ * if self.__exists:
+ * return account.purple_account_is_connecting(self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_account_is_connecting(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":60
+ * return account.purple_account_is_connecting(self._get_structure())
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * is_connecting = property(__is_connecting)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__is_connecting");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":63
+ * is_connecting = property(__is_connecting)
+ *
+ * def __is_disconnected(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_is_disconnected( \
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___is_disconnected(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___is_disconnected(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":64
+ *
+ * def __is_disconnected(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return account.purple_account_is_disconnected( \
+ * self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":66
+ * if self.__exists:
+ * return account.purple_account_is_disconnected( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_account_is_disconnected(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":68
+ * self._get_structure())
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * is_disconnected = property(__is_disconnected)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__is_disconnected");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":71
+ * is_disconnected = property(__is_disconnected)
+ *
+ * def __get_core(self): # <<<<<<<<<<<<<<
+ * return self.__core
+ * core = property(__get_core)
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_core(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_core(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":72
+ *
+ * def __get_core(self):
+ * return self.__core # <<<<<<<<<<<<<<
+ * core = property(__get_core)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core);
+ __pyx_r = ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":75
+ * core = property(__get_core)
+ *
+ * def __get_exists(self): # <<<<<<<<<<<<<<
+ * return self.__exists
+ * exists = property(__get_exists)
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_exists(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_exists(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":76
+ *
+ * def __get_exists(self):
+ * return self.__exists # <<<<<<<<<<<<<<
+ * exists = property(__get_exists)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists);
+ __pyx_r = ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":79
+ * exists = property(__get_exists)
+ *
+ * def __get_username(self): # <<<<<<<<<<<<<<
+ * cdef char *username = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_username(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_username(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_username;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":80
+ *
+ * def __get_username(self):
+ * cdef char *username = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * username = <char *> account.purple_account_get_username( \
+ */
+ __pyx_v_username = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":81
+ * def __get_username(self):
+ * cdef char *username = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * username = <char *> account.purple_account_get_username( \
+ * self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":83
+ * if self.__exists:
+ * username = <char *> account.purple_account_get_username( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if username:
+ * return username
+ */
+ __pyx_v_username = ((char *)purple_account_get_username(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":84
+ * username = <char *> account.purple_account_get_username( \
+ * self._get_structure())
+ * if username: # <<<<<<<<<<<<<<
+ * return username
+ * else:
+ */
+ __pyx_1 = (__pyx_v_username != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":85
+ * self._get_structure())
+ * if username:
+ * return username # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":87
+ * return username
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * else:
+ * return self.__username
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":89
+ * return None
+ * else:
+ * return self.__username # <<<<<<<<<<<<<<
+ * username = property(__get_username)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__username);
+ __pyx_r = ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__username;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_username");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":92
+ * username = property(__get_username)
+ *
+ * def __get_protocol(self): # <<<<<<<<<<<<<<
+ * return self.__protocol
+ * protocol = property(__get_protocol)
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_protocol(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_protocol(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":93
+ *
+ * def __get_protocol(self):
+ * return self.__protocol # <<<<<<<<<<<<<<
+ * protocol = property(__get_protocol)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol);
+ __pyx_r = ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":96
+ * protocol = property(__get_protocol)
+ *
+ * def _get_protocol_options(self): # <<<<<<<<<<<<<<
+ * """
+ * @return Dictionary {'setting': value, ...}
+ */
+
+static PyObject *__pyx_pf_6purple_7Account__get_protocol_options(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_7Account__get_protocol_options[] = "\n @return Dictionary {'setting': value, ...}\n ";
+static PyObject *__pyx_pf_6purple_7Account__get_protocol_options(PyObject *__pyx_v_self, PyObject *unused) {
+ GList *__pyx_v_iter;
+ PurpleAccount *__pyx_v_c_account;
+ PurplePlugin *__pyx_v_c_plugin;
+ PurplePluginProtocolInfo *__pyx_v_prpl_info;
+ PurpleAccountOption *__pyx_v_option;
+ PurplePrefType __pyx_v_type;
+ char *__pyx_v_label_name;
+ char *__pyx_v_str_value;
+ char *__pyx_v_setting;
+ int __pyx_v_int_value;
+ gboolean __pyx_v_bool_value;
+ PyObject *__pyx_v_po;
+ PyObject *__pyx_v_sett;
+ PyObject *__pyx_v_val;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_po = Py_None; Py_INCREF(Py_None);
+ __pyx_v_sett = Py_None; Py_INCREF(Py_None);
+ __pyx_v_val = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":112
+ * cdef glib.gboolean bool_value
+ *
+ * c_account = self._get_structure() # <<<<<<<<<<<<<<
+ *
+ * if c_account == NULL:
+ */
+ __pyx_v_c_account = ((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":114
+ * c_account = self._get_structure()
+ *
+ * if c_account == NULL: # <<<<<<<<<<<<<<
+ * return None
+ *
+ */
+ __pyx_1 = (__pyx_v_c_account == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":115
+ *
+ * if c_account == NULL:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * po = {}
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":117
+ * return None
+ *
+ * po = {} # <<<<<<<<<<<<<<
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ */
+ __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_po);
+ __pyx_v_po = ((PyObject *)__pyx_2);
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":119
+ * po = {}
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id) # <<<<<<<<<<<<<<
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin)
+ * iter = prpl_info.protocol_options
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol, __pyx_kp_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_v_c_plugin = purple_plugins_find_with_id(__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":120
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin) # <<<<<<<<<<<<<<
+ * iter = prpl_info.protocol_options
+ *
+ */
+ __pyx_v_prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(__pyx_v_c_plugin);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":121
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin)
+ * iter = prpl_info.protocol_options # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_v_iter = __pyx_v_prpl_info->protocol_options;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":123
+ * iter = prpl_info.protocol_options
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ */
+ while (1) {
+ __pyx_1 = (__pyx_v_iter != 0);
+ if (!__pyx_1) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":125
+ * while iter:
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data # <<<<<<<<<<<<<<
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = <char *> accountopt.purple_account_option_get_text(option)
+ */
+ __pyx_v_option = ((PurpleAccountOption *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":126
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option) # <<<<<<<<<<<<<<
+ * label_name = <char *> accountopt.purple_account_option_get_text(option)
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ */
+ __pyx_v_type = purple_account_option_get_type(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":127
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = <char *> accountopt.purple_account_option_get_text(option) # <<<<<<<<<<<<<<
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ *
+ */
+ __pyx_v_label_name = ((char *)purple_account_option_get_text(__pyx_v_option));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":128
+ * type = accountopt.purple_account_option_get_type(option)
+ * label_name = <char *> accountopt.purple_account_option_get_text(option)
+ * setting = <char *> accountopt.purple_account_option_get_setting(option) # <<<<<<<<<<<<<<
+ *
+ * sett = str(<char *> setting)
+ */
+ __pyx_v_setting = ((char *)purple_account_option_get_setting(__pyx_v_option));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":130
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ *
+ * sett = str(<char *> setting) # <<<<<<<<<<<<<<
+ *
+ * if type == prefs.PURPLE_PREF_STRING:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_setting)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_sett);
+ __pyx_v_sett = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":132
+ * sett = str(<char *> setting)
+ *
+ * if type == prefs.PURPLE_PREF_STRING: # <<<<<<<<<<<<<<
+ *
+ * str_value = <char *> accountopt.purple_account_option_get_default_string(option)
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_STRING);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":134
+ * if type == prefs.PURPLE_PREF_STRING:
+ *
+ * str_value = <char *> accountopt.purple_account_option_get_default_string(option) # <<<<<<<<<<<<<<
+ *
+ * # Hack to set string "" as default value to Account options when
+ */
+ __pyx_v_str_value = ((char *)purple_account_option_get_default_string(__pyx_v_option));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":138
+ * # Hack to set string "" as default value to Account options when
+ * # the default value of the protocol is NULL
+ * if str_value == NULL: # <<<<<<<<<<<<<<
+ * str_value = ""
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value)
+ */
+ __pyx_1 = (__pyx_v_str_value == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":139
+ * # the default value of the protocol is NULL
+ * if str_value == NULL:
+ * str_value = "" # <<<<<<<<<<<<<<
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value)
+ *
+ */
+ __pyx_v_str_value = __pyx_k_449;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":140
+ * if str_value == NULL:
+ * str_value = ""
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value) # <<<<<<<<<<<<<<
+ *
+ * val = str(<char *> str_value)
+ */
+ __pyx_v_str_value = ((char *)purple_account_get_string(__pyx_v_c_account, __pyx_v_setting, __pyx_v_str_value));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":142
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value)
+ *
+ * val = str(<char *> str_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_INT:
+ */
+ __pyx_4 = __Pyx_PyBytes_FromString(((char *)__pyx_v_str_value)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":144
+ * val = str(<char *> str_value)
+ *
+ * elif type == prefs.PURPLE_PREF_INT: # <<<<<<<<<<<<<<
+ *
+ * int_value = accountopt.purple_account_option_get_default_int(option)
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_INT);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":146
+ * elif type == prefs.PURPLE_PREF_INT:
+ *
+ * int_value = accountopt.purple_account_option_get_default_int(option) # <<<<<<<<<<<<<<
+ * int_value = account.purple_account_get_int(c_account, setting, int_value)
+ *
+ */
+ __pyx_v_int_value = purple_account_option_get_default_int(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":147
+ *
+ * int_value = accountopt.purple_account_option_get_default_int(option)
+ * int_value = account.purple_account_get_int(c_account, setting, int_value) # <<<<<<<<<<<<<<
+ *
+ * val = int(int_value)
+ */
+ __pyx_v_int_value = purple_account_get_int(__pyx_v_c_account, __pyx_v_setting, __pyx_v_int_value);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":149
+ * int_value = account.purple_account_get_int(c_account, setting, int_value)
+ *
+ * val = int(int_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ */
+ __pyx_2 = PyInt_FromLong(__pyx_v_int_value); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyInt_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":151
+ * val = int(int_value)
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN: # <<<<<<<<<<<<<<
+ *
+ * bool_value = accountopt.purple_account_option_get_default_bool(option)
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_BOOLEAN);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":153
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ *
+ * bool_value = accountopt.purple_account_option_get_default_bool(option) # <<<<<<<<<<<<<<
+ * bool_value = account.purple_account_get_bool(c_account, setting, bool_value)
+ *
+ */
+ __pyx_v_bool_value = purple_account_option_get_default_bool(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":154
+ *
+ * bool_value = accountopt.purple_account_option_get_default_bool(option)
+ * bool_value = account.purple_account_get_bool(c_account, setting, bool_value) # <<<<<<<<<<<<<<
+ *
+ * val = bool(bool_value)
+ */
+ __pyx_v_bool_value = purple_account_get_bool(__pyx_v_c_account, __pyx_v_setting, __pyx_v_bool_value);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":156
+ * bool_value = account.purple_account_get_bool(c_account, setting, bool_value)
+ *
+ * val = bool(bool_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ */
+ __pyx_4 = PyInt_FromLong(__pyx_v_bool_value); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyBool_Type)), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L8;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":158
+ * val = bool(bool_value)
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST: # <<<<<<<<<<<<<<
+ *
+ * str_value = <char *> accountopt.purple_account_option_get_default_list_value(option)
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_STRING_LIST);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":160
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ *
+ * str_value = <char *> accountopt.purple_account_option_get_default_list_value(option) # <<<<<<<<<<<<<<
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value)
+ *
+ */
+ __pyx_v_str_value = ((char *)purple_account_option_get_default_list_value(__pyx_v_option));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":161
+ *
+ * str_value = <char *> accountopt.purple_account_option_get_default_list_value(option)
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value) # <<<<<<<<<<<<<<
+ *
+ * val = str(<char *> str_value)
+ */
+ __pyx_v_str_value = ((char *)purple_account_get_string(__pyx_v_c_account, __pyx_v_setting, __pyx_v_str_value));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":163
+ * str_value = <char *> account.purple_account_get_string(c_account, setting, str_value)
+ *
+ * val = str(<char *> str_value) # <<<<<<<<<<<<<<
+ *
+ * iter = iter.next
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_str_value)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_val);
+ __pyx_v_val = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":165
+ * val = str(<char *> str_value)
+ *
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * po[sett] = val
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":167
+ * iter = iter.next
+ *
+ * po[sett] = val # <<<<<<<<<<<<<<
+ *
+ * return po
+ */
+ if (PyObject_SetItem(__pyx_v_po, __pyx_v_sett, __pyx_v_val) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":169
+ * po[sett] = val
+ *
+ * return po # <<<<<<<<<<<<<<
+ * protocol_options = property(_get_protocol_options)
+ *
+ */
+ Py_INCREF(__pyx_v_po);
+ __pyx_r = __pyx_v_po;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account._get_protocol_options");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_po);
+ Py_DECREF(__pyx_v_sett);
+ Py_DECREF(__pyx_v_val);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":172
+ * protocol_options = property(_get_protocol_options)
+ *
+ * def __get_password(self): # <<<<<<<<<<<<<<
+ * cdef char *password = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_password(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_password(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_password;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":173
+ *
+ * def __get_password(self):
+ * cdef char *password = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * password = <char *> account.purple_account_get_password( \
+ */
+ __pyx_v_password = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":174
+ * def __get_password(self):
+ * cdef char *password = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * password = <char *> account.purple_account_get_password( \
+ * self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":176
+ * if self.__exists:
+ * password = <char *> account.purple_account_get_password( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if password:
+ * return password
+ */
+ __pyx_v_password = ((char *)purple_account_get_password(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":177
+ * password = <char *> account.purple_account_get_password( \
+ * self._get_structure())
+ * if password: # <<<<<<<<<<<<<<
+ * return password
+ * else:
+ */
+ __pyx_1 = (__pyx_v_password != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":178
+ * self._get_structure())
+ * if password:
+ * return password # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_password); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":180
+ * return password
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":182
+ * return None
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * password = property(__get_password)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_password");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":185
+ * password = property(__get_password)
+ *
+ * def __get_alias(self): # <<<<<<<<<<<<<<
+ * cdef char *alias = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_alias(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_alias(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":186
+ *
+ * def __get_alias(self):
+ * cdef char *alias = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * alias = <char *> account.purple_account_get_alias(self._get_structure())
+ */
+ __pyx_v_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":187
+ * def __get_alias(self):
+ * cdef char *alias = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * alias = <char *> account.purple_account_get_alias(self._get_structure())
+ * if alias:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":188
+ * cdef char *alias = NULL
+ * if self.__exists:
+ * alias = <char *> account.purple_account_get_alias(self._get_structure()) # <<<<<<<<<<<<<<
+ * if alias:
+ * return alias
+ */
+ __pyx_v_alias = ((char *)purple_account_get_alias(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":189
+ * if self.__exists:
+ * alias = <char *> account.purple_account_get_alias(self._get_structure())
+ * if alias: # <<<<<<<<<<<<<<
+ * return alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":190
+ * alias = <char *> account.purple_account_get_alias(self._get_structure())
+ * if alias:
+ * return alias # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":192
+ * return alias
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":194
+ * return None
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * alias = property(__get_alias)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":197
+ * alias = property(__get_alias)
+ *
+ * def __get_user_info(self): # <<<<<<<<<<<<<<
+ * cdef char *user_info = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_user_info(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_user_info(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_user_info;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":198
+ *
+ * def __get_user_info(self):
+ * cdef char *user_info = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * user_info = <char *> account.purple_account_get_user_info(self._get_structure())
+ */
+ __pyx_v_user_info = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":199
+ * def __get_user_info(self):
+ * cdef char *user_info = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * user_info = <char *> account.purple_account_get_user_info(self._get_structure())
+ * if user_info:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":200
+ * cdef char *user_info = NULL
+ * if self.__exists:
+ * user_info = <char *> account.purple_account_get_user_info(self._get_structure()) # <<<<<<<<<<<<<<
+ * if user_info:
+ * return user_info
+ */
+ __pyx_v_user_info = ((char *)purple_account_get_user_info(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":201
+ * if self.__exists:
+ * user_info = <char *> account.purple_account_get_user_info(self._get_structure())
+ * if user_info: # <<<<<<<<<<<<<<
+ * return user_info
+ * else:
+ */
+ __pyx_1 = (__pyx_v_user_info != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":202
+ * user_info = <char *> account.purple_account_get_user_info(self._get_structure())
+ * if user_info:
+ * return user_info # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_user_info); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":204
+ * return user_info
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":206
+ * return None
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * user_info = property(__get_user_info)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_user_info");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":209
+ * user_info = property(__get_user_info)
+ *
+ * def __get_remember_password(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_get_remember_password( \
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_remember_password(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_remember_password(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":210
+ *
+ * def __get_remember_password(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return account.purple_account_get_remember_password( \
+ * self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":212
+ * if self.__exists:
+ * return account.purple_account_get_remember_password( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_account_get_remember_password(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":214
+ * self._get_structure())
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * remember_password = property(__get_remember_password)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_remember_password");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":217
+ * remember_password = property(__get_remember_password)
+ *
+ * def __get_enabled(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_get_enabled(self._get_structure(), \
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_enabled(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_enabled(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":218
+ *
+ * def __get_enabled(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return account.purple_account_get_enabled(self._get_structure(), \
+ * self.__core.ui_name)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":220
+ * if self.__exists:
+ * return account.purple_account_get_enabled(self._get_structure(), \
+ * self.__core.ui_name) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core, __pyx_kp_ui_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyInt_FromLong(purple_account_get_enabled(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_3)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":222
+ * self.__core.ui_name)
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * enabled = property(__get_enabled)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_enabled");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":225
+ * enabled = property(__get_enabled)
+ *
+ * def __get_status_types(self): # <<<<<<<<<<<<<<
+ * cdef glib.GList *iter = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_status_types(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_status_types(PyObject *__pyx_v_self, PyObject *unused) {
+ GList *__pyx_v_iter;
+ PurpleStatusType *__pyx_v_c_statustype;
+ char *__pyx_v_id;
+ char *__pyx_v_name;
+ PyObject *__pyx_v_status_types;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ __pyx_v_status_types = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":226
+ *
+ * def __get_status_types(self):
+ * cdef glib.GList *iter = NULL # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef char *id = NULL
+ */
+ __pyx_v_iter = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":227
+ * def __get_status_types(self):
+ * cdef glib.GList *iter = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL # <<<<<<<<<<<<<<
+ * cdef char *id = NULL
+ * cdef char *name = NULL
+ */
+ __pyx_v_c_statustype = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":228
+ * cdef glib.GList *iter = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef char *id = NULL # <<<<<<<<<<<<<<
+ * cdef char *name = NULL
+ *
+ */
+ __pyx_v_id = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":229
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef char *id = NULL
+ * cdef char *name = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists:
+ */
+ __pyx_v_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":231
+ * cdef char *name = NULL
+ *
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * status_types = []
+ * iter = account.purple_account_get_status_types(self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":232
+ *
+ * if self.__exists:
+ * status_types = [] # <<<<<<<<<<<<<<
+ * iter = account.purple_account_get_status_types(self._get_structure())
+ * while iter:
+ */
+ __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_status_types);
+ __pyx_v_status_types = ((PyObject *)__pyx_2);
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":233
+ * if self.__exists:
+ * status_types = []
+ * iter = account.purple_account_get_status_types(self._get_structure()) # <<<<<<<<<<<<<<
+ * while iter:
+ * c_statustype = <status.PurpleStatusType *> iter.data
+ */
+ __pyx_v_iter = purple_account_get_status_types(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":234
+ * status_types = []
+ * iter = account.purple_account_get_status_types(self._get_structure())
+ * while iter: # <<<<<<<<<<<<<<
+ * c_statustype = <status.PurpleStatusType *> iter.data
+ * id = <char *> status.purple_status_type_get_id(c_statustype)
+ */
+ while (1) {
+ __pyx_1 = (__pyx_v_iter != 0);
+ if (!__pyx_1) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":235
+ * iter = account.purple_account_get_status_types(self._get_structure())
+ * while iter:
+ * c_statustype = <status.PurpleStatusType *> iter.data # <<<<<<<<<<<<<<
+ * id = <char *> status.purple_status_type_get_id(c_statustype)
+ * name = <char *> status.purple_status_type_get_name(c_statustype)
+ */
+ __pyx_v_c_statustype = ((PurpleStatusType *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":236
+ * while iter:
+ * c_statustype = <status.PurpleStatusType *> iter.data
+ * id = <char *> status.purple_status_type_get_id(c_statustype) # <<<<<<<<<<<<<<
+ * name = <char *> status.purple_status_type_get_name(c_statustype)
+ * status_types.append((id, name))
+ */
+ __pyx_v_id = ((char *)purple_status_type_get_id(__pyx_v_c_statustype));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":237
+ * c_statustype = <status.PurpleStatusType *> iter.data
+ * id = <char *> status.purple_status_type_get_id(c_statustype)
+ * name = <char *> status.purple_status_type_get_name(c_statustype) # <<<<<<<<<<<<<<
+ * status_types.append((id, name))
+ * iter = iter.next
+ */
+ __pyx_v_name = ((char *)purple_status_type_get_name(__pyx_v_c_statustype));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":238
+ * id = <char *> status.purple_status_type_get_id(c_statustype)
+ * name = <char *> status.purple_status_type_get_name(c_statustype)
+ * status_types.append((id, name)) # <<<<<<<<<<<<<<
+ * iter = iter.next
+ * return status_types
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
+ __pyx_2 = 0;
+ __pyx_3 = 0;
+ __pyx_2 = __Pyx_PyObject_Append(__pyx_v_status_types, ((PyObject *)__pyx_4)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":239
+ * name = <char *> status.purple_status_type_get_name(c_statustype)
+ * status_types.append((id, name))
+ * iter = iter.next # <<<<<<<<<<<<<<
+ * return status_types
+ * else:
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":240
+ * status_types.append((id, name))
+ * iter = iter.next
+ * return status_types # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(__pyx_v_status_types);
+ __pyx_r = __pyx_v_status_types;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":242
+ * return status_types
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * status_types = property(__get_status_types)
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.__get_status_types");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_status_types);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":246
+ * status_types = property(__get_status_types)
+ *
+ * def __get_active_status(self): # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_7Account___get_active_status(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account___get_active_status(PyObject *__pyx_v_self, PyObject *unused) {
+ PurpleStatus *__pyx_v_c_status;
+ char *__pyx_v_type;
+ char *__pyx_v_name;
+ char *__pyx_v_msg;
+ PyObject *__pyx_v_active;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ __pyx_v_active = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":247
+ *
+ * def __get_active_status(self):
+ * cdef status.PurpleStatus* c_status = NULL # <<<<<<<<<<<<<<
+ * cdef char *type = NULL
+ * cdef char *name = NULL
+ */
+ __pyx_v_c_status = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":248
+ * def __get_active_status(self):
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL # <<<<<<<<<<<<<<
+ * cdef char *name = NULL
+ * cdef char *msg = NULL
+ */
+ __pyx_v_type = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":249
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL
+ * cdef char *name = NULL # <<<<<<<<<<<<<<
+ * cdef char *msg = NULL
+ * if self.__exists:
+ */
+ __pyx_v_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":250
+ * cdef char *type = NULL
+ * cdef char *name = NULL
+ * cdef char *msg = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * active = {}
+ */
+ __pyx_v_msg = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":251
+ * cdef char *name = NULL
+ * cdef char *msg = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * active = {}
+ * c_status = <status.PurpleStatus*> account.purple_account_get_active_status(self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":252
+ * cdef char *msg = NULL
+ * if self.__exists:
+ * active = {} # <<<<<<<<<<<<<<
+ * c_status = <status.PurpleStatus*> account.purple_account_get_active_status(self._get_structure())
+ * type = <char *> status.purple_status_get_id(c_status)
+ */
+ __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_active);
+ __pyx_v_active = ((PyObject *)__pyx_2);
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":253
+ * if self.__exists:
+ * active = {}
+ * c_status = <status.PurpleStatus*> account.purple_account_get_active_status(self._get_structure()) # <<<<<<<<<<<<<<
+ * type = <char *> status.purple_status_get_id(c_status)
+ * name = <char *> status.purple_status_get_name(c_status)
+ */
+ __pyx_v_c_status = ((PurpleStatus *)purple_account_get_active_status(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":254
+ * active = {}
+ * c_status = <status.PurpleStatus*> account.purple_account_get_active_status(self._get_structure())
+ * type = <char *> status.purple_status_get_id(c_status) # <<<<<<<<<<<<<<
+ * name = <char *> status.purple_status_get_name(c_status)
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ */
+ __pyx_v_type = ((char *)purple_status_get_id(__pyx_v_c_status));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":255
+ * c_status = <status.PurpleStatus*> account.purple_account_get_active_status(self._get_structure())
+ * type = <char *> status.purple_status_get_id(c_status)
+ * name = <char *> status.purple_status_get_name(c_status) # <<<<<<<<<<<<<<
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ * "message")
+ */
+ __pyx_v_name = ((char *)purple_status_get_name(__pyx_v_c_status));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":257
+ * name = <char *> status.purple_status_get_name(c_status)
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ * "message") # <<<<<<<<<<<<<<
+ *
+ * active['type'] = type
+ */
+ __pyx_v_msg = ((char *)purple_status_get_attr_string(__pyx_v_c_status, __pyx_k_450));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":259
+ * "message")
+ *
+ * active['type'] = type # <<<<<<<<<<<<<<
+ * active['name'] = name
+ * if msg:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_451, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":260
+ *
+ * active['type'] = type
+ * active['name'] = name # <<<<<<<<<<<<<<
+ * if msg:
+ * active['message'] = msg
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_452, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":261
+ * active['type'] = type
+ * active['name'] = name
+ * if msg: # <<<<<<<<<<<<<<
+ * active['message'] = msg
+ *
+ */
+ __pyx_1 = (__pyx_v_msg != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":262
+ * active['name'] = name
+ * if msg:
+ * active['message'] = msg # <<<<<<<<<<<<<<
+ *
+ * return active
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_msg); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_453, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":264
+ * active['message'] = msg
+ *
+ * return active # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(__pyx_v_active);
+ __pyx_r = __pyx_v_active;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":266
+ * return active
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * active_status = property(__get_active_status)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.__get_active_status");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_active);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":269
+ * active_status = property(__get_active_status)
+ *
+ * def set_username(self, username): # <<<<<<<<<<<<<<
+ * """
+ * Sets the account's username.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_username(PyObject *__pyx_v_self, PyObject *__pyx_v_username); /*proto*/
+static char __pyx_doc_6purple_7Account_set_username[] = "\n Sets the account's username.\n\n @param username The username\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_username(PyObject *__pyx_v_self, PyObject *__pyx_v_username) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":276
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_username(self._get_structure(), \
+ * username)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":278
+ * if self.__exists:
+ * account.purple_account_set_username(self._get_structure(), \
+ * username) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_username); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_username(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":279
+ * account.purple_account_set_username(self._get_structure(), \
+ * username)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":281
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_protocol(self, protocol):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Account.set_username");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":283
+ * return False
+ *
+ * def set_protocol(self, protocol): # <<<<<<<<<<<<<<
+ * """
+ * Sets the account's protocol.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_protocol(PyObject *__pyx_v_self, PyObject *__pyx_v_protocol); /*proto*/
+static char __pyx_doc_6purple_7Account_set_protocol[] = "\n Sets the account's protocol.\n\n @param protocol A Protocol class instance\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_protocol(PyObject *__pyx_v_self, PyObject *__pyx_v_protocol) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ int __pyx_3;
+ char *__pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":290
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if protocol.exists and self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_protocol_id(self._get_structure(), \
+ * protocol.id)
+ */
+ __pyx_2 = PyObject_GetAttr(__pyx_v_protocol, __pyx_kp_exists); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (__pyx_1) {
+ __pyx_3 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_3 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_3;
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":292
+ * if protocol.exists and self.__exists:
+ * account.purple_account_set_protocol_id(self._get_structure(), \
+ * protocol.id) # <<<<<<<<<<<<<<
+ * self.__protocol = protocol
+ * return True
+ */
+ __pyx_2 = PyObject_GetAttr(__pyx_v_protocol, __pyx_kp_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ purple_account_set_protocol_id(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_4);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":293
+ * account.purple_account_set_protocol_id(self._get_structure(), \
+ * protocol.id)
+ * self.__protocol = protocol # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ Py_INCREF(__pyx_v_protocol);
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol = __pyx_v_protocol;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":294
+ * protocol.id)
+ * self.__protocol = protocol
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":296
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_protocol_options(self, po):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.set_protocol");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":298
+ * return False
+ *
+ * def set_protocol_options(self, po): # <<<<<<<<<<<<<<
+ * """
+ * @param po Dictionary {'setting': value, ...} options to be updated
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_protocol_options(PyObject *__pyx_v_self, PyObject *__pyx_v_po); /*proto*/
+static char __pyx_doc_6purple_7Account_set_protocol_options[] = "\n @param po Dictionary {'setting': value, ...} options to be updated\n @return True to success or False to failure\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_protocol_options(PyObject *__pyx_v_self, PyObject *__pyx_v_po) {
+ GList *__pyx_v_iter;
+ PurpleAccount *__pyx_v_c_account;
+ PurplePlugin *__pyx_v_c_plugin;
+ PurplePluginProtocolInfo *__pyx_v_prpl_info;
+ PurpleAccountOption *__pyx_v_option;
+ PurplePrefType __pyx_v_type;
+ char *__pyx_v_str_value;
+ char *__pyx_v_setting;
+ int __pyx_v_int_value;
+ gboolean __pyx_v_bool_value;
+ PyObject *__pyx_v_sett;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ int __pyx_6;
+ int __pyx_7;
+ gboolean __pyx_8;
+ __pyx_v_sett = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":314
+ * cdef glib.gboolean bool_value
+ *
+ * c_account = self._get_structure() # <<<<<<<<<<<<<<
+ *
+ * if c_account == NULL:
+ */
+ __pyx_v_c_account = ((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":316
+ * c_account = self._get_structure()
+ *
+ * if c_account == NULL: # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_1 = (__pyx_v_c_account == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":317
+ *
+ * if c_account == NULL:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":319
+ * return False
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id) # <<<<<<<<<<<<<<
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin)
+ * iter = prpl_info.protocol_options
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol, __pyx_kp_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_v_c_plugin = purple_plugins_find_with_id(__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":320
+ *
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin) # <<<<<<<<<<<<<<
+ * iter = prpl_info.protocol_options
+ *
+ */
+ __pyx_v_prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(__pyx_v_c_plugin);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":321
+ * c_plugin = plugin.purple_plugins_find_with_id(self.__protocol.id)
+ * prpl_info = plugin.PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin)
+ * iter = prpl_info.protocol_options # <<<<<<<<<<<<<<
+ *
+ * while iter:
+ */
+ __pyx_v_iter = __pyx_v_prpl_info->protocol_options;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":323
+ * iter = prpl_info.protocol_options
+ *
+ * while iter: # <<<<<<<<<<<<<<
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ */
+ while (1) {
+ __pyx_1 = (__pyx_v_iter != 0);
+ if (!__pyx_1) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":325
+ * while iter:
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data # <<<<<<<<<<<<<<
+ * type = accountopt.purple_account_option_get_type(option)
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ */
+ __pyx_v_option = ((PurpleAccountOption *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":326
+ *
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option) # <<<<<<<<<<<<<<
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ *
+ */
+ __pyx_v_type = purple_account_option_get_type(__pyx_v_option);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":327
+ * option = <accountopt.PurpleAccountOption *> iter.data
+ * type = accountopt.purple_account_option_get_type(option)
+ * setting = <char *> accountopt.purple_account_option_get_setting(option) # <<<<<<<<<<<<<<
+ *
+ * sett = str(<char *> setting)
+ */
+ __pyx_v_setting = ((char *)purple_account_option_get_setting(__pyx_v_option));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":329
+ * setting = <char *> accountopt.purple_account_option_get_setting(option)
+ *
+ * sett = str(<char *> setting) # <<<<<<<<<<<<<<
+ *
+ * if not po.has_key(sett):
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_setting)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_sett);
+ __pyx_v_sett = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":331
+ * sett = str(<char *> setting)
+ *
+ * if not po.has_key(sett): # <<<<<<<<<<<<<<
+ * iter = iter.next
+ * continue
+ */
+ __pyx_4 = PyObject_GetAttr(__pyx_v_po, __pyx_kp_has_key); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_sett);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_sett);
+ __pyx_5 = PyObject_Call(__pyx_4, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_5); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_6 = (!__pyx_1);
+ if (__pyx_6) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":332
+ *
+ * if not po.has_key(sett):
+ * iter = iter.next # <<<<<<<<<<<<<<
+ * continue
+ *
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":333
+ * if not po.has_key(sett):
+ * iter = iter.next
+ * continue # <<<<<<<<<<<<<<
+ *
+ * if type == prefs.PURPLE_PREF_STRING:
+ */
+ goto __pyx_L6;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":335
+ * continue
+ *
+ * if type == prefs.PURPLE_PREF_STRING: # <<<<<<<<<<<<<<
+ *
+ * str_value = <char *> po[sett]
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_STRING);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":337
+ * if type == prefs.PURPLE_PREF_STRING:
+ *
+ * str_value = <char *> po[sett] # <<<<<<<<<<<<<<
+ * account.purple_account_set_string(c_account, setting, str_value)
+ *
+ */
+ __pyx_4 = PyObject_GetItem(__pyx_v_po, __pyx_v_sett); if (!__pyx_4) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_4); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_v_str_value = ((char *)__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":338
+ *
+ * str_value = <char *> po[sett]
+ * account.purple_account_set_string(c_account, setting, str_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_INT:
+ */
+ purple_account_set_string(__pyx_v_c_account, __pyx_v_setting, __pyx_v_str_value);
+ goto __pyx_L9;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":340
+ * account.purple_account_set_string(c_account, setting, str_value)
+ *
+ * elif type == prefs.PURPLE_PREF_INT: # <<<<<<<<<<<<<<
+ *
+ * int_value = int(po[sett])
+ */
+ __pyx_6 = (__pyx_v_type == PURPLE_PREF_INT);
+ if (__pyx_6) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":342
+ * elif type == prefs.PURPLE_PREF_INT:
+ *
+ * int_value = int(po[sett]) # <<<<<<<<<<<<<<
+ * account.purple_account_set_int(c_account, setting, int_value)
+ *
+ */
+ __pyx_2 = PyObject_GetItem(__pyx_v_po, __pyx_v_sett); if (!__pyx_2) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyTuple_New(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyInt_Type)), ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ __pyx_7 = __pyx_PyInt_int(__pyx_4); if (unlikely((__pyx_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_v_int_value = __pyx_7;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":343
+ *
+ * int_value = int(po[sett])
+ * account.purple_account_set_int(c_account, setting, int_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ */
+ purple_account_set_int(__pyx_v_c_account, __pyx_v_setting, __pyx_v_int_value);
+ goto __pyx_L9;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":345
+ * account.purple_account_set_int(c_account, setting, int_value)
+ *
+ * elif type == prefs.PURPLE_PREF_BOOLEAN: # <<<<<<<<<<<<<<
+ *
+ * bool_value = bool(po[sett])
+ */
+ __pyx_1 = (__pyx_v_type == PURPLE_PREF_BOOLEAN);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":347
+ * elif type == prefs.PURPLE_PREF_BOOLEAN:
+ *
+ * bool_value = bool(po[sett]) # <<<<<<<<<<<<<<
+ * account.purple_account_set_bool(c_account, setting, bool_value)
+ *
+ */
+ __pyx_2 = PyObject_GetItem(__pyx_v_po, __pyx_v_sett); if (!__pyx_2) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyTuple_New(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyBool_Type)), ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ __pyx_8 = __pyx_PyInt_int(__pyx_4); if (unlikely((__pyx_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_v_bool_value = __pyx_8;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":348
+ *
+ * bool_value = bool(po[sett])
+ * account.purple_account_set_bool(c_account, setting, bool_value) # <<<<<<<<<<<<<<
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ */
+ purple_account_set_bool(__pyx_v_c_account, __pyx_v_setting, __pyx_v_bool_value);
+ goto __pyx_L9;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":350
+ * account.purple_account_set_bool(c_account, setting, bool_value)
+ *
+ * elif type == prefs.PURPLE_PREF_STRING_LIST: # <<<<<<<<<<<<<<
+ *
+ * str_value = <char *> po[sett]
+ */
+ __pyx_6 = (__pyx_v_type == PURPLE_PREF_STRING_LIST);
+ if (__pyx_6) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":352
+ * elif type == prefs.PURPLE_PREF_STRING_LIST:
+ *
+ * str_value = <char *> po[sett] # <<<<<<<<<<<<<<
+ * account.purple_account_set_string(c_account, setting, str_value)
+ *
+ */
+ __pyx_2 = PyObject_GetItem(__pyx_v_po, __pyx_v_sett); if (!__pyx_2) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_v_str_value = ((char *)__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":353
+ *
+ * str_value = <char *> po[sett]
+ * account.purple_account_set_string(c_account, setting, str_value) # <<<<<<<<<<<<<<
+ *
+ * iter = iter.next
+ */
+ purple_account_set_string(__pyx_v_c_account, __pyx_v_setting, __pyx_v_str_value);
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":355
+ * account.purple_account_set_string(c_account, setting, str_value)
+ *
+ * iter = iter.next # <<<<<<<<<<<<<<
+ *
+ * return True
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ __pyx_L6:;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":357
+ * iter = iter.next
+ *
+ * return True # <<<<<<<<<<<<<<
+ *
+ * def set_password(self, password):
+ */
+ __pyx_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_5;
+ __pyx_5 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_AddTraceback("purple.Account.set_protocol_options");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_sett);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":359
+ * return True
+ *
+ * def set_password(self, password): # <<<<<<<<<<<<<<
+ * """
+ * Sets the account's password.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_password(PyObject *__pyx_v_self, PyObject *__pyx_v_password); /*proto*/
+static char __pyx_doc_6purple_7Account_set_password[] = "\n Sets the account's password.\n\n @param password The password\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_password(PyObject *__pyx_v_self, PyObject *__pyx_v_password) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":366
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_password(self._get_structure(), \
+ * password)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":368
+ * if self.__exists:
+ * account.purple_account_set_password(self._get_structure(), \
+ * password) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_password); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_password(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":369
+ * account.purple_account_set_password(self._get_structure(), \
+ * password)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":371
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_alias(self, alias):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Account.set_password");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":373
+ * return False
+ *
+ * def set_alias(self, alias): # <<<<<<<<<<<<<<
+ * """
+ * Sets the account's alias
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_alias(PyObject *__pyx_v_self, PyObject *__pyx_v_alias); /*proto*/
+static char __pyx_doc_6purple_7Account_set_alias[] = "\n Sets the account's alias\n\n @param alias The alias\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_alias(PyObject *__pyx_v_self, PyObject *__pyx_v_alias) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":380
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_alias(self._get_structure(), \
+ * alias)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":382
+ * if self.__exists:
+ * account.purple_account_set_alias(self._get_structure(), \
+ * alias) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_alias); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_alias(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":383
+ * account.purple_account_set_alias(self._get_structure(), \
+ * alias)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":385
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_user_info(self, user_info):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Account.set_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":387
+ * return False
+ *
+ * def set_user_info(self, user_info): # <<<<<<<<<<<<<<
+ * """
+ * Sets the account's user information
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_user_info(PyObject *__pyx_v_self, PyObject *__pyx_v_user_info); /*proto*/
+static char __pyx_doc_6purple_7Account_set_user_info[] = "\n Sets the account's user information\n\n @param user_info The user information\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_user_info(PyObject *__pyx_v_self, PyObject *__pyx_v_user_info) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":394
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_user_info(self._get_structure(), \
+ * user_info)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":396
+ * if self.__exists:
+ * account.purple_account_set_user_info(self._get_structure(), \
+ * user_info) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_user_info); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_user_info(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":397
+ * account.purple_account_set_user_info(self._get_structure(), \
+ * user_info)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":399
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_remember_password(self, remember_password):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Account.set_user_info");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":401
+ * return False
+ *
+ * def set_remember_password(self, remember_password): # <<<<<<<<<<<<<<
+ * """
+ * Sets whether or not this account should save its password.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_remember_password(PyObject *__pyx_v_self, PyObject *__pyx_v_remember_password); /*proto*/
+static char __pyx_doc_6purple_7Account_set_remember_password[] = "\n Sets whether or not this account should save its password.\n\n @param remember_password True if should remember the password,\n or False otherwise\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_remember_password(PyObject *__pyx_v_self, PyObject *__pyx_v_remember_password) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ gboolean __pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":409
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_remember_password( \
+ * self._get_structure(), remember_password)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":411
+ * if self.__exists:
+ * account.purple_account_set_remember_password( \
+ * self._get_structure(), remember_password) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __pyx_PyInt_int(__pyx_v_remember_password); if (unlikely((__pyx_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_remember_password(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":412
+ * account.purple_account_set_remember_password( \
+ * self._get_structure(), remember_password)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":414
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_enabled(self, value):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Account.set_remember_password");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":416
+ * return False
+ *
+ * def set_enabled(self, value): # <<<<<<<<<<<<<<
+ * """
+ * Sets wheter or not this account is enabled.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_enabled(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
+static char __pyx_doc_6purple_7Account_set_enabled[] = "\n Sets wheter or not this account is enabled.\n\n @param value True if it is enabled, or False otherwise\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_set_enabled(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+ gboolean __pyx_5;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":423
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_set_enabled(self._get_structure(), \
+ * self.__core.ui_name, bool(value))
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":425
+ * if self.__exists:
+ * account.purple_account_set_enabled(self._get_structure(), \
+ * self.__core.ui_name, bool(value)) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__core, __pyx_kp_ui_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_value);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value);
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)&PyBool_Type)), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ __pyx_5 = __pyx_PyInt_int(__pyx_4); if (unlikely((__pyx_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ purple_account_set_enabled(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_3, __pyx_5);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":426
+ * account.purple_account_set_enabled(self._get_structure(), \
+ * self.__core.ui_name, bool(value))
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":428
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def new(self):
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.set_enabled");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":430
+ * return False
+ *
+ * def new(self): # <<<<<<<<<<<<<<
+ * """
+ * Creates a new account.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_new(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_7Account_new[] = "\n Creates a new account.\n\n @return True if successful, False if account already exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_new(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ char *__pyx_3;
+ char *__pyx_4;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":436
+ * @return True if successful, False if account already exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return False
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":437
+ * """
+ * if self.__exists:
+ * return False # <<<<<<<<<<<<<<
+ * else:
+ * account.purple_accounts_add(account.purple_account_new( \
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":440
+ * else:
+ * account.purple_accounts_add(account.purple_account_new( \
+ * self.__username, self.__protocol.id)) # <<<<<<<<<<<<<<
+ *
+ * self.__exists = True
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__username); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__protocol, __pyx_kp_id); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ purple_accounts_add(purple_account_new(__pyx_3, __pyx_4));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":442
+ * self.__username, self.__protocol.id))
+ *
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * return True
+ *
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":443
+ *
+ * self.__exists = True
+ * return True # <<<<<<<<<<<<<<
+ *
+ * def remove(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.new");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":445
+ * return True
+ *
+ * def remove(self): # <<<<<<<<<<<<<<
+ * """
+ * Removes an existing account.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_remove(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_7Account_remove[] = "\n Removes an existing account.\n\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_remove(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_v_self__exists;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ __pyx_v_self__exists = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":451
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_accounts_delete(self._get_structure())
+ * self__exists = False
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":452
+ * """
+ * if self.__exists:
+ * account.purple_accounts_delete(self._get_structure()) # <<<<<<<<<<<<<<
+ * self__exists = False
+ * return True
+ */
+ purple_accounts_delete(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":453
+ * if self.__exists:
+ * account.purple_accounts_delete(self._get_structure())
+ * self__exists = False # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_self__exists);
+ __pyx_v_self__exists = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":454
+ * account.purple_accounts_delete(self._get_structure())
+ * self__exists = False
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":456
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def connect(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.remove");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self__exists);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":458
+ * return False
+ *
+ * def connect(self): # <<<<<<<<<<<<<<
+ * """
+ * Connects to an account.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_connect(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_7Account_connect[] = "\n Connects to an account.\n\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_connect(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":464
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_connect(self._get_structure())
+ * return True
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":465
+ * """
+ * if self.__exists:
+ * account.purple_account_connect(self._get_structure()) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ purple_account_connect(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":466
+ * if self.__exists:
+ * account.purple_account_connect(self._get_structure())
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":468
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def disconnect(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.connect");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":470
+ * return False
+ *
+ * def disconnect(self): # <<<<<<<<<<<<<<
+ * """
+ * Disconnects from an account.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_disconnect(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_7Account_disconnect[] = "\n Disconnects from an account.\n\n @return True if successful, False if account doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_7Account_disconnect(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":476
+ * @return True if successful, False if account doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * account.purple_account_disconnect(self._get_structure())
+ * return True
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":477
+ * """
+ * if self.__exists:
+ * account.purple_account_disconnect(self._get_structure()) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ purple_account_disconnect(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":478
+ * if self.__exists:
+ * account.purple_account_disconnect(self._get_structure())
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":480
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def add_buddy(self, name, alias=None, group=None):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Account.disconnect");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":482
+ * return False
+ *
+ * def add_buddy(self, name, alias=None, group=None): # <<<<<<<<<<<<<<
+ * """
+ * Adds a buddy to account's buddy list.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_add_buddy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_6purple_7Account_add_buddy[] = "\n Adds a buddy to account's buddy list.\n\n @param name Buddy name\n @param alias Buddy alias (optional)\n @return True if successfull, False otherwise\n ";
+static PyObject *__pyx_pf_6purple_7Account_add_buddy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_name = 0;
+ PyObject *__pyx_v_alias = 0;
+ PyObject *__pyx_v_group = 0;
+ PurpleBuddy *__pyx_v_c_buddy;
+ PurpleGroup *__pyx_v_c_group;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ int __pyx_3;
+ PyObject *__pyx_4 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_name,&__pyx_kp_alias,&__pyx_kp_group,0};
+ __pyx_v_alias = Py_None;
+ __pyx_v_group = Py_None;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[3] = {0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_name);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "add_buddy") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_name = values[0];
+ if (values[1]) {
+ __pyx_v_alias = values[1];
+ }
+ if (values[2]) {
+ __pyx_v_group = values[2];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 3: __pyx_v_group = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: __pyx_v_alias = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 0);
+ break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("add_buddy", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Account.add_buddy");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":490
+ * @return True if successfull, False otherwise
+ * """
+ * cdef blist.PurpleBuddy *c_buddy = NULL # <<<<<<<<<<<<<<
+ * cdef blist.PurpleGroup *c_group = NULL
+ * cdef char *c_alias = NULL
+ */
+ __pyx_v_c_buddy = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":491
+ * """
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ * cdef blist.PurpleGroup *c_group = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_c_group = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":492
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ * cdef blist.PurpleGroup *c_group = NULL
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * if alias:
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":494
+ * cdef char *c_alias = NULL
+ *
+ * if alias: # <<<<<<<<<<<<<<
+ * c_alias = alias
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_alias); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":495
+ *
+ * if alias:
+ * c_alias = alias # <<<<<<<<<<<<<<
+ * else:
+ * c_alias = NULL
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_alias); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_alias = __pyx_2;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":497
+ * c_alias = alias
+ * else:
+ * c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists and \
+ */
+ __pyx_v_c_alias = NULL;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":499
+ * c_alias = NULL
+ *
+ * if self.__exists and \ # <<<<<<<<<<<<<<
+ * account.purple_account_is_connected(self._get_structure()):
+ * if blist.purple_find_buddy(self._get_structure(), name):
+ */
+ __pyx_3 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_3 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_3;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":500
+ *
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()): # <<<<<<<<<<<<<<
+ * if blist.purple_find_buddy(self._get_structure(), name):
+ * return False
+ */
+ __pyx_1 = purple_account_is_connected(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":501
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()):
+ * if blist.purple_find_buddy(self._get_structure(), name): # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = (purple_find_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2) != 0);
+ if (__pyx_3) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":502
+ * account.purple_account_is_connected(self._get_structure()):
+ * if blist.purple_find_buddy(self._get_structure(), name):
+ * return False # <<<<<<<<<<<<<<
+ *
+ * if group:
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":504
+ * return False
+ *
+ * if group: # <<<<<<<<<<<<<<
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_group); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":505
+ *
+ * if group:
+ * c_group = blist.purple_find_group(group) # <<<<<<<<<<<<<<
+ * if c_group == NULL:
+ * c_group = blist.purple_group_new(group)
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_group); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_group = purple_find_group(__pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":506
+ * if group:
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL: # <<<<<<<<<<<<<<
+ * c_group = blist.purple_group_new(group)
+ *
+ */
+ __pyx_3 = (__pyx_v_c_group == NULL);
+ if (__pyx_3) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":507
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL:
+ * c_group = blist.purple_group_new(group) # <<<<<<<<<<<<<<
+ *
+ * c_buddy = blist.purple_buddy_new(self._get_structure(), \
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_group); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_group = purple_group_new(__pyx_2);
+ goto __pyx_L10;
+ }
+ __pyx_L10:;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":510
+ *
+ * c_buddy = blist.purple_buddy_new(self._get_structure(), \
+ * name, c_alias) # <<<<<<<<<<<<<<
+ * if c_buddy == NULL:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_buddy = purple_buddy_new(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2, __pyx_v_c_alias);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":511
+ * c_buddy = blist.purple_buddy_new(self._get_structure(), \
+ * name, c_alias)
+ * if c_buddy == NULL: # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_1 = (__pyx_v_c_buddy == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":512
+ * name, c_alias)
+ * if c_buddy == NULL:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * blist.purple_blist_add_buddy(c_buddy, NULL, c_group, NULL)
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L11;
+ }
+ __pyx_L11:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":514
+ * return False
+ *
+ * blist.purple_blist_add_buddy(c_buddy, NULL, c_group, NULL) # <<<<<<<<<<<<<<
+ * account.purple_account_add_buddy(self._get_structure(), c_buddy)
+ * if c_alias:
+ */
+ purple_blist_add_buddy(__pyx_v_c_buddy, NULL, __pyx_v_c_group, NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":515
+ *
+ * blist.purple_blist_add_buddy(c_buddy, NULL, c_group, NULL)
+ * account.purple_account_add_buddy(self._get_structure(), c_buddy) # <<<<<<<<<<<<<<
+ * if c_alias:
+ * blist.purple_blist_alias_buddy(c_buddy, c_alias)
+ */
+ purple_account_add_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_v_c_buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":516
+ * blist.purple_blist_add_buddy(c_buddy, NULL, c_group, NULL)
+ * account.purple_account_add_buddy(self._get_structure(), c_buddy)
+ * if c_alias: # <<<<<<<<<<<<<<
+ * blist.purple_blist_alias_buddy(c_buddy, c_alias)
+ * server.serv_alias_buddy(c_buddy)
+ */
+ __pyx_3 = (__pyx_v_c_alias != 0);
+ if (__pyx_3) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":517
+ * account.purple_account_add_buddy(self._get_structure(), c_buddy)
+ * if c_alias:
+ * blist.purple_blist_alias_buddy(c_buddy, c_alias) # <<<<<<<<<<<<<<
+ * server.serv_alias_buddy(c_buddy)
+ *
+ */
+ purple_blist_alias_buddy(__pyx_v_c_buddy, __pyx_v_c_alias);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":518
+ * if c_alias:
+ * blist.purple_blist_alias_buddy(c_buddy, c_alias)
+ * server.serv_alias_buddy(c_buddy) # <<<<<<<<<<<<<<
+ *
+ * return True
+ */
+ serv_alias_buddy(__pyx_v_c_buddy);
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":520
+ * server.serv_alias_buddy(c_buddy)
+ *
+ * return True # <<<<<<<<<<<<<<
+ *
+ * else:
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L7;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":523
+ *
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * def remove_buddy(self, name):
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L7:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.add_buddy");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":525
+ * return None
+ *
+ * def remove_buddy(self, name): # <<<<<<<<<<<<<<
+ * """
+ * Removes a buddy from account's buddy list.
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_remove_buddy(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
+static char __pyx_doc_6purple_7Account_remove_buddy[] = "\n Removes a buddy from account's buddy list.\n\n @param name Buddy name\n @return True if successful, False otherwise\n ";
+static PyObject *__pyx_pf_6purple_7Account_remove_buddy(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
+ PurpleBuddy *__pyx_v_c_buddy;
+ PurpleGroup *__pyx_v_c_group;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":532
+ * @return True if successful, False otherwise
+ * """
+ * cdef blist.PurpleBuddy *c_buddy = NULL # <<<<<<<<<<<<<<
+ * cdef blist.PurpleGroup *c_group = NULL
+ *
+ */
+ __pyx_v_c_buddy = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":533
+ * """
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ * cdef blist.PurpleGroup *c_group = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists and \
+ */
+ __pyx_v_c_group = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":535
+ * cdef blist.PurpleGroup *c_group = NULL
+ *
+ * if self.__exists and \ # <<<<<<<<<<<<<<
+ * account.purple_account_is_connected(self._get_structure()):
+ * c_buddy = blist.purple_find_buddy(self._get_structure(), name)
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":536
+ *
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()): # <<<<<<<<<<<<<<
+ * c_buddy = blist.purple_find_buddy(self._get_structure(), name)
+ * if c_buddy == NULL:
+ */
+ __pyx_1 = purple_account_is_connected(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":537
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()):
+ * c_buddy = blist.purple_find_buddy(self._get_structure(), name) # <<<<<<<<<<<<<<
+ * if c_buddy == NULL:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_buddy = purple_find_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":538
+ * account.purple_account_is_connected(self._get_structure()):
+ * c_buddy = blist.purple_find_buddy(self._get_structure(), name)
+ * if c_buddy == NULL: # <<<<<<<<<<<<<<
+ * return False
+ *
+ */
+ __pyx_2 = (__pyx_v_c_buddy == NULL);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":539
+ * c_buddy = blist.purple_find_buddy(self._get_structure(), name)
+ * if c_buddy == NULL:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * c_group = blist.purple_buddy_get_group(c_buddy)
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":541
+ * return False
+ *
+ * c_group = blist.purple_buddy_get_group(c_buddy) # <<<<<<<<<<<<<<
+ *
+ * account.purple_account_remove_buddy(self._get_structure(), \
+ */
+ __pyx_v_c_group = purple_buddy_get_group(__pyx_v_c_buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":544
+ *
+ * account.purple_account_remove_buddy(self._get_structure(), \
+ * c_buddy, c_group) # <<<<<<<<<<<<<<
+ * blist.purple_blist_remove_buddy(c_buddy)
+ * return True
+ */
+ purple_account_remove_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_v_c_buddy, __pyx_v_c_group);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":545
+ * account.purple_account_remove_buddy(self._get_structure(), \
+ * c_buddy, c_group)
+ * blist.purple_blist_remove_buddy(c_buddy) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ purple_blist_remove_buddy(__pyx_v_c_buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":546
+ * c_buddy, c_group)
+ * blist.purple_blist_remove_buddy(c_buddy)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":548
+ * return True
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * def get_buddies_online(self):
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.remove_buddy");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":550
+ * return None
+ *
+ * def get_buddies_online(self): # <<<<<<<<<<<<<<
+ * cdef glib.GSList *iter = NULL
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_get_buddies_online(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account_get_buddies_online(PyObject *__pyx_v_self, PyObject *unused) {
+ GSList *__pyx_v_iter;
+ PurpleBuddy *__pyx_v_c_buddy;
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_v_buddies_list;
+ PyObject *__pyx_v_name;
+ PyObject *__pyx_v_new_buddy;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ __pyx_v_buddies_list = Py_None; Py_INCREF(Py_None);
+ __pyx_v_name = Py_None; Py_INCREF(Py_None);
+ __pyx_v_new_buddy = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":551
+ *
+ * def get_buddies_online(self):
+ * cdef glib.GSList *iter = NULL # <<<<<<<<<<<<<<
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ * cdef char *c_alias = NULL
+ */
+ __pyx_v_iter = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":552
+ * def get_buddies_online(self):
+ * cdef glib.GSList *iter = NULL
+ * cdef blist.PurpleBuddy *c_buddy = NULL # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ *
+ */
+ __pyx_v_c_buddy = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":553
+ * cdef glib.GSList *iter = NULL
+ * cdef blist.PurpleBuddy *c_buddy = NULL
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists and \
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":555
+ * cdef char *c_alias = NULL
+ *
+ * if self.__exists and \ # <<<<<<<<<<<<<<
+ * account.purple_account_is_connected(self._get_structure()):
+ * iter = blist.purple_find_buddies(self._get_structure(), NULL)
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":556
+ *
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()): # <<<<<<<<<<<<<<
+ * iter = blist.purple_find_buddies(self._get_structure(), NULL)
+ *
+ */
+ __pyx_1 = purple_account_is_connected(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)));
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":557
+ * if self.__exists and \
+ * account.purple_account_is_connected(self._get_structure()):
+ * iter = blist.purple_find_buddies(self._get_structure(), NULL) # <<<<<<<<<<<<<<
+ *
+ * buddies_list = []
+ */
+ __pyx_v_iter = purple_find_buddies(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":559
+ * iter = blist.purple_find_buddies(self._get_structure(), NULL)
+ *
+ * buddies_list = [] # <<<<<<<<<<<<<<
+ * while iter:
+ * c_alias = NULL
+ */
+ __pyx_3 = PyList_New(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_buddies_list);
+ __pyx_v_buddies_list = ((PyObject *)__pyx_3);
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":560
+ *
+ * buddies_list = []
+ * while iter: # <<<<<<<<<<<<<<
+ * c_alias = NULL
+ * c_buddy = <blist.PurpleBuddy *> iter.data
+ */
+ while (1) {
+ __pyx_2 = (__pyx_v_iter != 0);
+ if (!__pyx_2) break;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":561
+ * buddies_list = []
+ * while iter:
+ * c_alias = NULL # <<<<<<<<<<<<<<
+ * c_buddy = <blist.PurpleBuddy *> iter.data
+ * if <blist.PurpleBuddy *> c_buddy and \
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":562
+ * while iter:
+ * c_alias = NULL
+ * c_buddy = <blist.PurpleBuddy *> iter.data # <<<<<<<<<<<<<<
+ * if <blist.PurpleBuddy *> c_buddy and \
+ * status.purple_presence_is_online( \
+ */
+ __pyx_v_c_buddy = ((PurpleBuddy *)__pyx_v_iter->data);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":563
+ * c_alias = NULL
+ * c_buddy = <blist.PurpleBuddy *> iter.data
+ * if <blist.PurpleBuddy *> c_buddy and \ # <<<<<<<<<<<<<<
+ * status.purple_presence_is_online( \
+ * blist.purple_buddy_get_presence(c_buddy)):
+ */
+ __pyx_1 = (((PurpleBuddy *)__pyx_v_c_buddy) != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":565
+ * if <blist.PurpleBuddy *> c_buddy and \
+ * status.purple_presence_is_online( \
+ * blist.purple_buddy_get_presence(c_buddy)): # <<<<<<<<<<<<<<
+ * name = <char *> blist.purple_buddy_get_name(c_buddy)
+ *
+ */
+ __pyx_1 = purple_presence_is_online(purple_buddy_get_presence(__pyx_v_c_buddy));
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":566
+ * status.purple_presence_is_online( \
+ * blist.purple_buddy_get_presence(c_buddy)):
+ * name = <char *> blist.purple_buddy_get_name(c_buddy) # <<<<<<<<<<<<<<
+ *
+ * new_buddy = Buddy(name, self)
+ */
+ __pyx_3 = __Pyx_PyBytes_FromString(((char *)purple_buddy_get_name(__pyx_v_c_buddy))); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_name);
+ __pyx_v_name = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":568
+ * name = <char *> blist.purple_buddy_get_name(c_buddy)
+ *
+ * new_buddy = Buddy(name, self) # <<<<<<<<<<<<<<
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(c_buddy)
+ */
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_v_name);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_name);
+ Py_INCREF(__pyx_v_self);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_self);
+ __pyx_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6purple_Buddy)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_new_buddy);
+ __pyx_v_new_buddy = __pyx_4;
+ __pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":570
+ * new_buddy = Buddy(name, self)
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(c_buddy) # <<<<<<<<<<<<<<
+ * if c_alias:
+ * new_buddy.set_alias(c_alias)
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(__pyx_v_c_buddy));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":571
+ *
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(c_buddy)
+ * if c_alias: # <<<<<<<<<<<<<<
+ * new_buddy.set_alias(c_alias)
+ *
+ */
+ __pyx_2 = (__pyx_v_c_alias != 0);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":572
+ * c_alias = <char *> blist.purple_buddy_get_alias_only(c_buddy)
+ * if c_alias:
+ * new_buddy.set_alias(c_alias) # <<<<<<<<<<<<<<
+ *
+ * buddies_list.append(new_buddy)
+ */
+ __pyx_3 = PyObject_GetAttr(__pyx_v_new_buddy, __pyx_kp_set_alias); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyTuple_New(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_5, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":574
+ * new_buddy.set_alias(c_alias)
+ *
+ * buddies_list.append(new_buddy) # <<<<<<<<<<<<<<
+ * iter = iter.next
+ * return buddies_list
+ */
+ __pyx_3 = __Pyx_PyObject_Append(__pyx_v_buddies_list, __pyx_v_new_buddy); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":575
+ *
+ * buddies_list.append(new_buddy)
+ * iter = iter.next # <<<<<<<<<<<<<<
+ * return buddies_list
+ * else:
+ */
+ __pyx_v_iter = __pyx_v_iter->next;
+ }
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":576
+ * buddies_list.append(new_buddy)
+ * iter = iter.next
+ * return buddies_list # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(__pyx_v_buddies_list);
+ __pyx_r = __pyx_v_buddies_list;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":578
+ * return buddies_list
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ *
+ * def request_add_buddy(self, buddy_username, buddy_alias):
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_AddTraceback("purple.Account.get_buddies_online");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_buddies_list);
+ Py_DECREF(__pyx_v_name);
+ Py_DECREF(__pyx_v_new_buddy);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":580
+ * return None
+ *
+ * def request_add_buddy(self, buddy_username, buddy_alias): # <<<<<<<<<<<<<<
+ * if buddy_alias:
+ * blist.purple_blist_request_add_buddy(self._get_structure(), \
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_request_add_buddy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account_request_add_buddy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_buddy_username = 0;
+ PyObject *__pyx_v_buddy_alias = 0;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ char *__pyx_3;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_buddy_username,&__pyx_kp_buddy_alias,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_buddy_username);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_buddy_alias);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("request_add_buddy", 1, 2, 2, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "request_add_buddy") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_buddy_username = values[0];
+ __pyx_v_buddy_alias = values[1];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_buddy_username = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_buddy_alias = PyTuple_GET_ITEM(__pyx_args, 1);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("request_add_buddy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Account.request_add_buddy");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":581
+ *
+ * def request_add_buddy(self, buddy_username, buddy_alias):
+ * if buddy_alias: # <<<<<<<<<<<<<<
+ * blist.purple_blist_request_add_buddy(self._get_structure(), \
+ * buddy_username, NULL, buddy_alias)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_buddy_alias); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":583
+ * if buddy_alias:
+ * blist.purple_blist_request_add_buddy(self._get_structure(), \
+ * buddy_username, NULL, buddy_alias) # <<<<<<<<<<<<<<
+ * else:
+ * blist.purple_blist_request_add_buddy(self._get_structure(), \
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_buddy_username); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_buddy_alias); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_blist_request_add_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2, NULL, __pyx_3);
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":586
+ * else:
+ * blist.purple_blist_request_add_buddy(self._get_structure(), \
+ * buddy_username, NULL, NULL) # <<<<<<<<<<<<<<
+ *
+ * def set_active_status(self, type, msg=None):
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_buddy_username); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_blist_request_add_buddy(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2, NULL, NULL);
+ }
+ __pyx_L6:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_AddTraceback("purple.Account.request_add_buddy");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":588
+ * buddy_username, NULL, NULL)
+ *
+ * def set_active_status(self, type, msg=None): # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_active_status(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account_set_active_status(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_type = 0;
+ PyObject *__pyx_v_msg = 0;
+ PurpleStatusType *__pyx_v_c_statustype;
+ PurpleSavedStatus *__pyx_v_c_savedstatus;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_type,&__pyx_kp_msg,0};
+ __pyx_v_msg = Py_None;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_type);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_active_status") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_type = values[0];
+ if (values[1]) {
+ __pyx_v_msg = values[1];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: __pyx_v_msg = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: __pyx_v_type = PyTuple_GET_ITEM(__pyx_args, 0);
+ break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("set_active_status", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Account.set_active_status");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":589
+ *
+ * def set_active_status(self, type, msg=None):
+ * cdef status.PurpleStatusType *c_statustype = NULL # <<<<<<<<<<<<<<
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ *
+ */
+ __pyx_v_c_statustype = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":590
+ * def set_active_status(self, type, msg=None):
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists:
+ */
+ __pyx_v_c_savedstatus = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":592
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ *
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * if msg:
+ * account.purple_account_set_status(self._get_structure(),
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":593
+ *
+ * if self.__exists:
+ * if msg: # <<<<<<<<<<<<<<
+ * account.purple_account_set_status(self._get_structure(),
+ * <char *> type, True, "message", <char *> msg, NULL)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_msg); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":595
+ * if msg:
+ * account.purple_account_set_status(self._get_structure(),
+ * <char *> type, True, "message", <char *> msg, NULL) # <<<<<<<<<<<<<<
+ * else:
+ * account.purple_account_set_status(self._get_structure(),
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_msg); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_status(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), ((char *)__pyx_2), 1, __pyx_k_454, ((char *)__pyx_3), NULL);
+ goto __pyx_L7;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":598
+ * else:
+ * account.purple_account_set_status(self._get_structure(),
+ * <char *> type, True, NULL) # <<<<<<<<<<<<<<
+ *
+ * # FIXME: We can create only a savedstatus for each statustype
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_account_set_status(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), ((char *)__pyx_2), 1, NULL);
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":601
+ *
+ * # FIXME: We can create only a savedstatus for each statustype
+ * c_savedstatus = savedstatuses.purple_savedstatus_find(type) # <<<<<<<<<<<<<<
+ * if c_savedstatus == NULL:
+ * c_statustype = account.purple_account_get_status_type( \
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_savedstatus = purple_savedstatus_find(__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":602
+ * # FIXME: We can create only a savedstatus for each statustype
+ * c_savedstatus = savedstatuses.purple_savedstatus_find(type)
+ * if c_savedstatus == NULL: # <<<<<<<<<<<<<<
+ * c_statustype = account.purple_account_get_status_type( \
+ * self._get_structure(), type)
+ */
+ __pyx_1 = (__pyx_v_c_savedstatus == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":604
+ * if c_savedstatus == NULL:
+ * c_statustype = account.purple_account_get_status_type( \
+ * self._get_structure(), type) # <<<<<<<<<<<<<<
+ * c_savedstatus = savedstatuses.purple_savedstatus_new( \
+ * NULL, status.purple_status_type_get_primitive( \
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_statustype = purple_account_get_status_type(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":607
+ * c_savedstatus = savedstatuses.purple_savedstatus_new( \
+ * NULL, status.purple_status_type_get_primitive( \
+ * c_statustype)) # <<<<<<<<<<<<<<
+ * savedstatuses.purple_savedstatus_set_title(c_savedstatus,
+ * type)
+ */
+ __pyx_v_c_savedstatus = purple_savedstatus_new(NULL, purple_status_type_get_primitive(__pyx_v_c_statustype));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":609
+ * c_statustype))
+ * savedstatuses.purple_savedstatus_set_title(c_savedstatus,
+ * type) # <<<<<<<<<<<<<<
+ *
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg)
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_savedstatus_set_title(__pyx_v_c_savedstatus, __pyx_3);
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":611
+ * type)
+ *
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg) # <<<<<<<<<<<<<<
+ * prefs.purple_prefs_set_int("/purple/savedstatus/idleaway",
+ * savedstatuses.purple_savedstatus_get_creation_time(c_savedstatus))
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_msg); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_savedstatus_set_message(__pyx_v_c_savedstatus, __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":613
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg)
+ * prefs.purple_prefs_set_int("/purple/savedstatus/idleaway",
+ * savedstatuses.purple_savedstatus_get_creation_time(c_savedstatus)) # <<<<<<<<<<<<<<
+ *
+ * return True
+ */
+ purple_prefs_set_int(__pyx_k_455, purple_savedstatus_get_creation_time(__pyx_v_c_savedstatus));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":615
+ * savedstatuses.purple_savedstatus_get_creation_time(c_savedstatus))
+ *
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":617
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_status_message(self, type, msg):
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.set_active_status");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":619
+ * return False
+ *
+ * def set_status_message(self, type, msg): # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_7Account_set_status_message(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pf_6purple_7Account_set_status_message(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_type = 0;
+ PyObject *__pyx_v_msg = 0;
+ PurpleStatus *__pyx_v_c_status;
+ PurpleStatusType *__pyx_v_c_statustype;
+ PurpleSavedStatus *__pyx_v_c_savedstatus;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_type,&__pyx_kp_msg,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_type);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_msg);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("set_status_message", 1, 2, 2, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_status_message") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_type = values[0];
+ __pyx_v_msg = values[1];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_type = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_msg = PyTuple_GET_ITEM(__pyx_args, 1);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("set_status_message", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Account.set_status_message");
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":620
+ *
+ * def set_status_message(self, type, msg):
+ * cdef status.PurpleStatus* c_status = NULL # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ */
+ __pyx_v_c_status = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":621
+ * def set_status_message(self, type, msg):
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL # <<<<<<<<<<<<<<
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ *
+ */
+ __pyx_v_c_statustype = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":622
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef status.PurpleStatusType *c_statustype = NULL
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL # <<<<<<<<<<<<<<
+ *
+ * if self.__exists and msg:
+ */
+ __pyx_v_c_savedstatus = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":624
+ * cdef savedstatuses.PurpleSavedStatus *c_savedstatus = NULL
+ *
+ * if self.__exists and msg: # <<<<<<<<<<<<<<
+ * c_status = account.purple_account_get_status(self._get_structure(),
+ * type)
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__exists); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ if (__pyx_1) {
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_msg); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":626
+ * if self.__exists and msg:
+ * c_status = account.purple_account_get_status(self._get_structure(),
+ * type) # <<<<<<<<<<<<<<
+ * if c_status == NULL:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_status = purple_account_get_status(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":627
+ * c_status = account.purple_account_get_status(self._get_structure(),
+ * type)
+ * if c_status == NULL: # <<<<<<<<<<<<<<
+ * return False
+ * status.purple_status_set_attr_string(c_status, "message", msg)
+ */
+ __pyx_2 = (__pyx_v_c_status == NULL);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":628
+ * type)
+ * if c_status == NULL:
+ * return False # <<<<<<<<<<<<<<
+ * status.purple_status_set_attr_string(c_status, "message", msg)
+ *
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L7;
+ }
+ __pyx_L7:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":629
+ * if c_status == NULL:
+ * return False
+ * status.purple_status_set_attr_string(c_status, "message", msg) # <<<<<<<<<<<<<<
+ *
+ * # FIXME: We can create only a savedstatus for each statustype
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_msg); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_status_set_attr_string(__pyx_v_c_status, __pyx_k_456, __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":632
+ *
+ * # FIXME: We can create only a savedstatus for each statustype
+ * c_savedstatus = savedstatuses.purple_savedstatus_find(type) # <<<<<<<<<<<<<<
+ * if c_savedstatus == NULL:
+ * c_statustype = account.purple_account_get_status_type( \
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_savedstatus = purple_savedstatus_find(__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":633
+ * # FIXME: We can create only a savedstatus for each statustype
+ * c_savedstatus = savedstatuses.purple_savedstatus_find(type)
+ * if c_savedstatus == NULL: # <<<<<<<<<<<<<<
+ * c_statustype = account.purple_account_get_status_type( \
+ * self._get_structure(), type)
+ */
+ __pyx_1 = (__pyx_v_c_savedstatus == NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":635
+ * if c_savedstatus == NULL:
+ * c_statustype = account.purple_account_get_status_type( \
+ * self._get_structure(), type) # <<<<<<<<<<<<<<
+ * c_savedstatus = savedstatuses.purple_savedstatus_new( \
+ * NULL, status.purple_status_type_get_primitive( \
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_statustype = purple_account_get_status_type(((struct __pyx_vtabstruct_6purple_Account *)((struct __pyx_obj_6purple_Account *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Account *)__pyx_v_self)), __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":638
+ * c_savedstatus = savedstatuses.purple_savedstatus_new( \
+ * NULL, status.purple_status_type_get_primitive( \
+ * c_statustype)) # <<<<<<<<<<<<<<
+ * savedstatuses.purple_savedstatus_set_title(c_savedstatus,
+ * type)
+ */
+ __pyx_v_c_savedstatus = purple_savedstatus_new(NULL, purple_status_type_get_primitive(__pyx_v_c_statustype));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":640
+ * c_statustype))
+ * savedstatuses.purple_savedstatus_set_title(c_savedstatus,
+ * type) # <<<<<<<<<<<<<<
+ *
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg)
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_type); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_savedstatus_set_title(__pyx_v_c_savedstatus, __pyx_3);
+ goto __pyx_L8;
+ }
+ __pyx_L8:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":642
+ * type)
+ *
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_msg); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_savedstatus_set_message(__pyx_v_c_savedstatus, __pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":643
+ *
+ * savedstatuses.purple_savedstatus_set_message(c_savedstatus, msg)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":645
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Account.set_status_message");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":33
+ * cdef object __exists
+ *
+ * def __init__(self, name, account): # <<<<<<<<<<<<<<
+ * self.__name = name
+ * self.__account = account
+ */
+
+static int __pyx_pf_6purple_5Buddy___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_5Buddy___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_name = 0;
+ PyObject *__pyx_v_account = 0;
+ int __pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_name,&__pyx_kp_account,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[2] = {0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_name);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_account);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_name = values[0];
+ __pyx_v_account = values[1];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_account = PyTuple_GET_ITEM(__pyx_args, 1);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Buddy.__init__");
+ return -1;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":34
+ *
+ * def __init__(self, name, account):
+ * self.__name = name # <<<<<<<<<<<<<<
+ * self.__account = account
+ *
+ */
+ Py_INCREF(__pyx_v_name);
+ Py_DECREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__name);
+ ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__name = __pyx_v_name;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":35
+ * def __init__(self, name, account):
+ * self.__name = name
+ * self.__account = account # <<<<<<<<<<<<<<
+ *
+ * if self._get_structure() != NULL:
+ */
+ Py_INCREF(__pyx_v_account);
+ Py_DECREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__account);
+ ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__account = __pyx_v_account;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":37
+ * self.__account = account
+ *
+ * if self._get_structure() != NULL: # <<<<<<<<<<<<<<
+ * self.__exists = True
+ * else:
+ */
+ __pyx_1 = (((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)) != NULL);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":38
+ *
+ * if self._get_structure() != NULL:
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * else:
+ * self.__exists = False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":40
+ * self.__exists = True
+ * else:
+ * self.__exists = False # <<<<<<<<<<<<<<
+ *
+ * cdef blist.PurpleBuddy *_get_structure(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":42
+ * self.__exists = False
+ *
+ * cdef blist.PurpleBuddy *_get_structure(self): # <<<<<<<<<<<<<<
+ * return blist.purple_find_buddy(account.purple_accounts_find( \
+ * self.__account.username, self.__account.protocol.id), \
+ */
+
+static PurpleBuddy *__pyx_f_6purple_5Buddy__get_structure(struct __pyx_obj_6purple_Buddy *__pyx_v_self) {
+ PurpleBuddy *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+ char *__pyx_4;
+ char *__pyx_5;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":44
+ * cdef blist.PurpleBuddy *_get_structure(self):
+ * return blist.purple_find_buddy(account.purple_accounts_find( \
+ * self.__account.username, self.__account.protocol.id), \ # <<<<<<<<<<<<<<
+ * self.__name)
+ *
+ */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self->__account, __pyx_kp_username); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_1); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self->__account, __pyx_kp_protocol); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_kp_id); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_4 = __Pyx_PyBytes_AsString(__pyx_3); if (unlikely((!__pyx_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":45
+ * return blist.purple_find_buddy(account.purple_accounts_find( \
+ * self.__account.username, self.__account.protocol.id), \
+ * self.__name) # <<<<<<<<<<<<<<
+ *
+ * def __get_exists(self):
+ */
+ __pyx_5 = __Pyx_PyBytes_AsString(__pyx_v_self->__name); if (unlikely((!__pyx_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = purple_find_buddy(purple_accounts_find(__pyx_2, __pyx_4), __pyx_5);
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ __Pyx_WriteUnraisable("purple.Buddy._get_structure");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":47
+ * self.__name)
+ *
+ * def __get_exists(self): # <<<<<<<<<<<<<<
+ * return self.__exists
+ * exists = property(__get_exists)
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_exists(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_exists(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":48
+ *
+ * def __get_exists(self):
+ * return self.__exists # <<<<<<<<<<<<<<
+ * exists = property(__get_exists)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists);
+ __pyx_r = ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":51
+ * exists = property(__get_exists)
+ *
+ * def __get_name(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return <char *> blist.purple_buddy_get_name(self._get_structure())
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_name(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_name(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":52
+ *
+ * def __get_name(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return <char *> blist.purple_buddy_get_name(self._get_structure())
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":53
+ * def __get_name(self):
+ * if self.__exists:
+ * return <char *> blist.purple_buddy_get_name(self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return self.__name
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)purple_buddy_get_name(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":55
+ * return <char *> blist.purple_buddy_get_name(self._get_structure())
+ * else:
+ * return self.__name # <<<<<<<<<<<<<<
+ * name = property(__get_name)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__name);
+ __pyx_r = ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__name;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_name");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":58
+ * name = property(__get_name)
+ *
+ * def __get_account(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return self.__account
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_account(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_account(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":59
+ *
+ * def __get_account(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return self.__account
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":60
+ * def __get_account(self):
+ * if self.__exists:
+ * return self.__account # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__account);
+ __pyx_r = ((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__account;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":62
+ * return self.__account
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * account = property(__get_account)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_AddTraceback("purple.Buddy.__get_account");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":65
+ * account = property(__get_account)
+ *
+ * def __get_alias(self): # <<<<<<<<<<<<<<
+ * cdef char *c_alias = NULL
+ * c_alias = <char *> blist.purple_buddy_get_alias_only( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_alias(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_alias(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_c_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":66
+ *
+ * def __get_alias(self):
+ * cdef char *c_alias = NULL # <<<<<<<<<<<<<<
+ * c_alias = <char *> blist.purple_buddy_get_alias_only( \
+ * self._get_structure())
+ */
+ __pyx_v_c_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":68
+ * cdef char *c_alias = NULL
+ * c_alias = <char *> blist.purple_buddy_get_alias_only( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if c_alias:
+ * return unicode(c_alias, 'utf-8')
+ */
+ __pyx_v_c_alias = ((char *)purple_buddy_get_alias_only(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":69
+ * c_alias = <char *> blist.purple_buddy_get_alias_only( \
+ * self._get_structure())
+ * if c_alias: # <<<<<<<<<<<<<<
+ * return unicode(c_alias, 'utf-8')
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":70
+ * self._get_structure())
+ * if c_alias:
+ * return unicode(c_alias, 'utf-8') # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ Py_INCREF(__pyx_kp_457);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_kp_457);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(((PyObject *)((PyObject*)&PyUnicode_Type)), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":72
+ * return unicode(c_alias, 'utf-8')
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * alias = property(__get_alias)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Buddy.__get_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":75
+ * alias = property(__get_alias)
+ *
+ * def __get_group(self): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists:
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_group(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_group(PyObject *__pyx_v_self, PyObject *unused) {
+ PurpleGroup *__pyx_v_c_group;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":76
+ *
+ * def __get_group(self):
+ * cdef blist.PurpleGroup *c_group = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * c_group = blist.purple_buddy_get_group(self._get_structure())
+ */
+ __pyx_v_c_group = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":77
+ * def __get_group(self):
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * c_group = blist.purple_buddy_get_group(self._get_structure())
+ * return <char *> blist.purple_group_get_name(c_group)
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":78
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists:
+ * c_group = blist.purple_buddy_get_group(self._get_structure()) # <<<<<<<<<<<<<<
+ * return <char *> blist.purple_group_get_name(c_group)
+ * else:
+ */
+ __pyx_v_c_group = purple_buddy_get_group(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":79
+ * if self.__exists:
+ * c_group = blist.purple_buddy_get_group(self._get_structure())
+ * return <char *> blist.purple_group_get_name(c_group) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)purple_group_get_name(__pyx_v_c_group))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":81
+ * return <char *> blist.purple_group_get_name(c_group)
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * group = property(__get_group)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_group");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":84
+ * group = property(__get_group)
+ *
+ * def __get_server_alias(self): # <<<<<<<<<<<<<<
+ * cdef char *c_server_alias = NULL
+ * c_server_alias = <char *> blist.purple_buddy_get_server_alias( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_server_alias(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_server_alias(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_c_server_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":85
+ *
+ * def __get_server_alias(self):
+ * cdef char *c_server_alias = NULL # <<<<<<<<<<<<<<
+ * c_server_alias = <char *> blist.purple_buddy_get_server_alias( \
+ * self._get_structure())
+ */
+ __pyx_v_c_server_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":87
+ * cdef char *c_server_alias = NULL
+ * c_server_alias = <char *> blist.purple_buddy_get_server_alias( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if c_server_alias:
+ * return c_server_alias
+ */
+ __pyx_v_c_server_alias = ((char *)purple_buddy_get_server_alias(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":88
+ * c_server_alias = <char *> blist.purple_buddy_get_server_alias( \
+ * self._get_structure())
+ * if c_server_alias: # <<<<<<<<<<<<<<
+ * return c_server_alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_server_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":89
+ * self._get_structure())
+ * if c_server_alias:
+ * return c_server_alias # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_server_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":91
+ * return c_server_alias
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * server_alias = property(__get_server_alias)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_server_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":94
+ * server_alias = property(__get_server_alias)
+ *
+ * def __get_contact_alias(self): # <<<<<<<<<<<<<<
+ * cdef char *c_contact_alias = NULL
+ * c_contact_alias = <char *> blist.purple_buddy_get_contact_alias( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_contact_alias(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_contact_alias(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_c_contact_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":95
+ *
+ * def __get_contact_alias(self):
+ * cdef char *c_contact_alias = NULL # <<<<<<<<<<<<<<
+ * c_contact_alias = <char *> blist.purple_buddy_get_contact_alias( \
+ * self._get_structure())
+ */
+ __pyx_v_c_contact_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":97
+ * cdef char *c_contact_alias = NULL
+ * c_contact_alias = <char *> blist.purple_buddy_get_contact_alias( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if c_contact_alias:
+ * return c_contact_alias
+ */
+ __pyx_v_c_contact_alias = ((char *)purple_buddy_get_contact_alias(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":98
+ * c_contact_alias = <char *> blist.purple_buddy_get_contact_alias( \
+ * self._get_structure())
+ * if c_contact_alias: # <<<<<<<<<<<<<<
+ * return c_contact_alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_contact_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":99
+ * self._get_structure())
+ * if c_contact_alias:
+ * return c_contact_alias # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_contact_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":101
+ * return c_contact_alias
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * contact_alias = property(__get_contact_alias)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_contact_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":104
+ * contact_alias = property(__get_contact_alias)
+ *
+ * def __get_local_alias(self): # <<<<<<<<<<<<<<
+ * cdef char *c_local_alias = NULL
+ * c_local_alias = <char *> blist.purple_buddy_get_local_alias( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_local_alias(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_local_alias(PyObject *__pyx_v_self, PyObject *unused) {
+ char *__pyx_v_c_local_alias;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":105
+ *
+ * def __get_local_alias(self):
+ * cdef char *c_local_alias = NULL # <<<<<<<<<<<<<<
+ * c_local_alias = <char *> blist.purple_buddy_get_local_alias( \
+ * self._get_structure())
+ */
+ __pyx_v_c_local_alias = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":107
+ * cdef char *c_local_alias = NULL
+ * c_local_alias = <char *> blist.purple_buddy_get_local_alias( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * if c_local_alias:
+ * return c_local_alias
+ */
+ __pyx_v_c_local_alias = ((char *)purple_buddy_get_local_alias(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":108
+ * c_local_alias = <char *> blist.purple_buddy_get_local_alias( \
+ * self._get_structure())
+ * if c_local_alias: # <<<<<<<<<<<<<<
+ * return c_local_alias
+ * else:
+ */
+ __pyx_1 = (__pyx_v_c_local_alias != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":109
+ * self._get_structure())
+ * if c_local_alias:
+ * return c_local_alias # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_c_local_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":111
+ * return c_local_alias
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * local_alias = property(__get_local_alias)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_local_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":114
+ * local_alias = property(__get_local_alias)
+ *
+ * def __get_available(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return status.purple_presence_is_available( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_available(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_available(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":115
+ *
+ * def __get_available(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return status.purple_presence_is_available( \
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":117
+ * if self.__exists:
+ * return status.purple_presence_is_available( \
+ * blist.purple_buddy_get_presence(self._get_structure())) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_presence_is_available(purple_buddy_get_presence(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":119
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * available = property(__get_available)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_available");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":122
+ * available = property(__get_available)
+ *
+ * def __get_online(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return status.purple_presence_is_online( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_online(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_online(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":123
+ *
+ * def __get_online(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return status.purple_presence_is_online( \
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":125
+ * if self.__exists:
+ * return status.purple_presence_is_online( \
+ * blist.purple_buddy_get_presence(self._get_structure())) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_presence_is_online(purple_buddy_get_presence(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":127
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * online = property(__get_online)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_online");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":130
+ * online = property(__get_online)
+ *
+ * def __get_idle(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return status.purple_presence_is_idle( \
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_idle(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_idle(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":131
+ *
+ * def __get_idle(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return status.purple_presence_is_idle( \
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":133
+ * if self.__exists:
+ * return status.purple_presence_is_idle( \
+ * blist.purple_buddy_get_presence(self._get_structure())) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = PyInt_FromLong(purple_presence_is_idle(purple_buddy_get_presence(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":135
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * idle = property(__get_idle)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_idle");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":138
+ * idle = property(__get_idle)
+ *
+ * def __get_active_status(self): # <<<<<<<<<<<<<<
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy___get_active_status(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy___get_active_status(PyObject *__pyx_v_self, PyObject *unused) {
+ PurpleStatus *__pyx_v_c_status;
+ char *__pyx_v_type;
+ char *__pyx_v_name;
+ char *__pyx_v_msg;
+ PyObject *__pyx_v_active;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ __pyx_v_active = Py_None; Py_INCREF(Py_None);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":139
+ *
+ * def __get_active_status(self):
+ * cdef status.PurpleStatus* c_status = NULL # <<<<<<<<<<<<<<
+ * cdef char *type = NULL
+ * cdef char *name = NULL
+ */
+ __pyx_v_c_status = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":140
+ * def __get_active_status(self):
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL # <<<<<<<<<<<<<<
+ * cdef char *name = NULL
+ * cdef char *msg = NULL
+ */
+ __pyx_v_type = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":141
+ * cdef status.PurpleStatus* c_status = NULL
+ * cdef char *type = NULL
+ * cdef char *name = NULL # <<<<<<<<<<<<<<
+ * cdef char *msg = NULL
+ * if self.__exists:
+ */
+ __pyx_v_name = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":142
+ * cdef char *type = NULL
+ * cdef char *name = NULL
+ * cdef char *msg = NULL # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * active = {}
+ */
+ __pyx_v_msg = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":143
+ * cdef char *name = NULL
+ * cdef char *msg = NULL
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * active = {}
+ * c_status = status.purple_presence_get_active_status( \
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":144
+ * cdef char *msg = NULL
+ * if self.__exists:
+ * active = {} # <<<<<<<<<<<<<<
+ * c_status = status.purple_presence_get_active_status( \
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ */
+ __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_v_active);
+ __pyx_v_active = ((PyObject *)__pyx_2);
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":146
+ * active = {}
+ * c_status = status.purple_presence_get_active_status( \
+ * blist.purple_buddy_get_presence(self._get_structure())) # <<<<<<<<<<<<<<
+ * type = <char *> status.purple_status_get_id(c_status)
+ * name = <char *> status.purple_status_get_name(c_status)
+ */
+ __pyx_v_c_status = purple_presence_get_active_status(purple_buddy_get_presence(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self))));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":147
+ * c_status = status.purple_presence_get_active_status( \
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ * type = <char *> status.purple_status_get_id(c_status) # <<<<<<<<<<<<<<
+ * name = <char *> status.purple_status_get_name(c_status)
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ */
+ __pyx_v_type = ((char *)purple_status_get_id(__pyx_v_c_status));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":148
+ * blist.purple_buddy_get_presence(self._get_structure()))
+ * type = <char *> status.purple_status_get_id(c_status)
+ * name = <char *> status.purple_status_get_name(c_status) # <<<<<<<<<<<<<<
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ * "message")
+ */
+ __pyx_v_name = ((char *)purple_status_get_name(__pyx_v_c_status));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":150
+ * name = <char *> status.purple_status_get_name(c_status)
+ * msg = <char *> status.purple_status_get_attr_string(c_status,
+ * "message") # <<<<<<<<<<<<<<
+ *
+ * active['type'] = type
+ */
+ __pyx_v_msg = ((char *)purple_status_get_attr_string(__pyx_v_c_status, __pyx_k_458));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":152
+ * "message")
+ *
+ * active['type'] = type # <<<<<<<<<<<<<<
+ * active['name'] = name
+ * if msg:
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_type); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_459, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":153
+ *
+ * active['type'] = type
+ * active['name'] = name # <<<<<<<<<<<<<<
+ * if msg:
+ * active['message'] = msg
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_460, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":154
+ * active['type'] = type
+ * active['name'] = name
+ * if msg: # <<<<<<<<<<<<<<
+ * active['message'] = msg
+ *
+ */
+ __pyx_1 = (__pyx_v_msg != 0);
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":155
+ * active['name'] = name
+ * if msg:
+ * active['message'] = msg # <<<<<<<<<<<<<<
+ *
+ * return active
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(__pyx_v_msg); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetItem(__pyx_v_active, __pyx_kp_461, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":157
+ * active['message'] = msg
+ *
+ * return active # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(__pyx_v_active);
+ __pyx_r = __pyx_v_active;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":159
+ * return active
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * active_status = property(__get_active_status)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Buddy.__get_active_status");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_active);
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":162
+ * active_status = property(__get_active_status)
+ *
+ * def set_alias(self, alias): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * blist.purple_blist_alias_buddy(self._get_structure(), alias)
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy_set_alias(PyObject *__pyx_v_self, PyObject *__pyx_v_alias); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy_set_alias(PyObject *__pyx_v_self, PyObject *__pyx_v_alias) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":163
+ *
+ * def set_alias(self, alias):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * blist.purple_blist_alias_buddy(self._get_structure(), alias)
+ * return True
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":164
+ * def set_alias(self, alias):
+ * if self.__exists:
+ * blist.purple_blist_alias_buddy(self._get_structure(), alias) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_alias); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_blist_alias_buddy(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)), __pyx_2);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":165
+ * if self.__exists:
+ * blist.purple_blist_alias_buddy(self._get_structure(), alias)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":167
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_group(self, group):
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("purple.Buddy.set_alias");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":169
+ * return False
+ *
+ * def set_group(self, group): # <<<<<<<<<<<<<<
+ * cdef blist.PurpleContact *c_contact = NULL
+ * cdef blist.PurpleGroup *c_group = NULL
+ */
+
+static PyObject *__pyx_pf_6purple_5Buddy_set_group(PyObject *__pyx_v_self, PyObject *__pyx_v_group); /*proto*/
+static PyObject *__pyx_pf_6purple_5Buddy_set_group(PyObject *__pyx_v_self, PyObject *__pyx_v_group) {
+ PurpleContact *__pyx_v_c_contact;
+ PurpleGroup *__pyx_v_c_group;
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ char *__pyx_3;
+ PyObject *__pyx_4 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":170
+ *
+ * def set_group(self, group):
+ * cdef blist.PurpleContact *c_contact = NULL # <<<<<<<<<<<<<<
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists and group:
+ */
+ __pyx_v_c_contact = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":171
+ * def set_group(self, group):
+ * cdef blist.PurpleContact *c_contact = NULL
+ * cdef blist.PurpleGroup *c_group = NULL # <<<<<<<<<<<<<<
+ * if self.__exists and group:
+ * c_group = blist.purple_find_group(group)
+ */
+ __pyx_v_c_group = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":172
+ * cdef blist.PurpleContact *c_contact = NULL
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists and group: # <<<<<<<<<<<<<<
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL:
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__exists); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ if (__pyx_1) {
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_group); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":173
+ * cdef blist.PurpleGroup *c_group = NULL
+ * if self.__exists and group:
+ * c_group = blist.purple_find_group(group) # <<<<<<<<<<<<<<
+ * if c_group == NULL:
+ * c_group = blist.purple_group_new(group)
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_group); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_group = purple_find_group(__pyx_3);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":174
+ * if self.__exists and group:
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL: # <<<<<<<<<<<<<<
+ * c_group = blist.purple_group_new(group)
+ *
+ */
+ __pyx_2 = (__pyx_v_c_group == NULL);
+ if (__pyx_2) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":175
+ * c_group = blist.purple_find_group(group)
+ * if c_group == NULL:
+ * c_group = blist.purple_group_new(group) # <<<<<<<<<<<<<<
+ *
+ * c_contact = blist.purple_buddy_get_contact(self._get_structure())
+ */
+ __pyx_3 = __Pyx_PyBytes_AsString(__pyx_v_group); if (unlikely((!__pyx_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_v_c_group = purple_group_new(__pyx_3);
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":177
+ * c_group = blist.purple_group_new(group)
+ *
+ * c_contact = blist.purple_buddy_get_contact(self._get_structure()) # <<<<<<<<<<<<<<
+ * blist.purple_blist_add_contact(c_contact, c_group, NULL)
+ * return True
+ */
+ __pyx_v_c_contact = purple_buddy_get_contact(((struct __pyx_vtabstruct_6purple_Buddy *)((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Buddy *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":178
+ *
+ * c_contact = blist.purple_buddy_get_contact(self._get_structure())
+ * blist.purple_blist_add_contact(c_contact, c_group, NULL) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ purple_blist_add_contact(__pyx_v_c_contact, __pyx_v_c_group, NULL);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":179
+ * c_contact = blist.purple_buddy_get_contact(self._get_structure())
+ * blist.purple_blist_add_contact(c_contact, c_group, NULL)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":181
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Buddy.set_group");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":35
+ * cdef object __exists
+ *
+ * def __init__(self, type, account, name): # <<<<<<<<<<<<<<
+ * self.__type = {
+ * "UNKNOWN": conversation.PURPLE_CONV_TYPE_UNKNOWN,
+ */
+
+static int __pyx_pf_6purple_12Conversation___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_6purple_12Conversation___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_type = 0;
+ PyObject *__pyx_v_account = 0;
+ PyObject *__pyx_v_name = 0;
+ int __pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ int __pyx_3;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_type,&__pyx_kp_account,&__pyx_kp_name,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[3] = {0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_type);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_account);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_name);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_type = values[0];
+ __pyx_v_account = values[1];
+ __pyx_v_name = values[2];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ __pyx_v_type = PyTuple_GET_ITEM(__pyx_args, 0);
+ __pyx_v_account = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 2);
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("purple.Conversation.__init__");
+ return -1;
+ __pyx_L4_argument_unpacking_done:;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":41
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT,
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC,
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type] # <<<<<<<<<<<<<<
+ * self.__account = account
+ * self.__name = name
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":37
+ * def __init__(self, type, account, name):
+ * self.__type = {
+ * "UNKNOWN": conversation.PURPLE_CONV_TYPE_UNKNOWN, # <<<<<<<<<<<<<<
+ * "IM": conversation.PURPLE_CONV_TYPE_IM,
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT,
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_CONV_TYPE_UNKNOWN); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_462, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":38
+ * self.__type = {
+ * "UNKNOWN": conversation.PURPLE_CONV_TYPE_UNKNOWN,
+ * "IM": conversation.PURPLE_CONV_TYPE_IM, # <<<<<<<<<<<<<<
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT,
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC,
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_CONV_TYPE_IM); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_463, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":39
+ * "UNKNOWN": conversation.PURPLE_CONV_TYPE_UNKNOWN,
+ * "IM": conversation.PURPLE_CONV_TYPE_IM,
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT, # <<<<<<<<<<<<<<
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC,
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type]
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_CONV_TYPE_CHAT); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_464, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":40
+ * "IM": conversation.PURPLE_CONV_TYPE_IM,
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT,
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC, # <<<<<<<<<<<<<<
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type]
+ * self.__account = account
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_CONV_TYPE_MISC); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_465, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":41
+ * "CHAT": conversation.PURPLE_CONV_TYPE_CHAT,
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC,
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type] # <<<<<<<<<<<<<<
+ * self.__account = account
+ * self.__name = name
+ */
+ __pyx_2 = PyInt_FromLong(PURPLE_CONV_TYPE_ANY); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_1, __pyx_kp_466, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_2 = PyObject_GetItem(((PyObject *)__pyx_1), __pyx_v_type); if (!__pyx_2) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":36
+ *
+ * def __init__(self, type, account, name):
+ * self.__type = { # <<<<<<<<<<<<<<
+ * "UNKNOWN": conversation.PURPLE_CONV_TYPE_UNKNOWN,
+ * "IM": conversation.PURPLE_CONV_TYPE_IM,
+ */
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__type);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__type = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":42
+ * "MISC": conversation.PURPLE_CONV_TYPE_MISC,
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type]
+ * self.__account = account # <<<<<<<<<<<<<<
+ * self.__name = name
+ *
+ */
+ Py_INCREF(__pyx_v_account);
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account = __pyx_v_account;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":43
+ * "ANY": conversation.PURPLE_CONV_TYPE_ANY }[type]
+ * self.__account = account
+ * self.__name = name # <<<<<<<<<<<<<<
+ *
+ * if self._get_structure() != NULL:
+ */
+ Py_INCREF(__pyx_v_name);
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__name);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__name = __pyx_v_name;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":45
+ * self.__name = name
+ *
+ * if self._get_structure() != NULL: # <<<<<<<<<<<<<<
+ * self.__exists = True
+ * else:
+ */
+ __pyx_3 = (((struct __pyx_vtabstruct_6purple_Conversation *)((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)) != NULL);
+ if (__pyx_3) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":46
+ *
+ * if self._get_structure() != NULL:
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * else:
+ * self.__exists = False
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L6;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":48
+ * self.__exists = True
+ * else:
+ * self.__exists = False # <<<<<<<<<<<<<<
+ *
+ * cdef conversation.PurpleConversation *_get_structure(self):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+ }
+ __pyx_L6:;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Conversation.__init__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":50
+ * self.__exists = False
+ *
+ * cdef conversation.PurpleConversation *_get_structure(self): # <<<<<<<<<<<<<<
+ * return conversation.purple_find_conversation_with_account( \
+ * self.__type, self.__name, account.purple_accounts_find( \
+ */
+
+static PurpleConversation *__pyx_f_6purple_12Conversation__get_structure(struct __pyx_obj_6purple_Conversation *__pyx_v_self) {
+ PurpleConversation *__pyx_r;
+ PurpleConversationType __pyx_1;
+ char *__pyx_2;
+ PyObject *__pyx_3 = 0;
+ char *__pyx_4;
+ PyObject *__pyx_5 = 0;
+ char *__pyx_6;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":52
+ * cdef conversation.PurpleConversation *_get_structure(self):
+ * return conversation.purple_find_conversation_with_account( \
+ * self.__type, self.__name, account.purple_accounts_find( \ # <<<<<<<<<<<<<<
+ * self.__account.username, self.__account.protocol.id))
+ *
+ */
+ __pyx_1 = ((PurpleConversationType)PyInt_AsLong(__pyx_v_self->__type)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = __Pyx_PyBytes_AsString(__pyx_v_self->__name); if (unlikely((!__pyx_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":53
+ * return conversation.purple_find_conversation_with_account( \
+ * self.__type, self.__name, account.purple_accounts_find( \
+ * self.__account.username, self.__account.protocol.id)) # <<<<<<<<<<<<<<
+ *
+ * def __get_exists(self):
+ */
+ __pyx_3 = PyObject_GetAttr(__pyx_v_self->__account, __pyx_kp_username); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyBytes_AsString(__pyx_3); if (unlikely((!__pyx_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_3 = PyObject_GetAttr(__pyx_v_self->__account, __pyx_kp_protocol); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyObject_GetAttr(__pyx_3, __pyx_kp_id); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_6 = __Pyx_PyBytes_AsString(__pyx_5); if (unlikely((!__pyx_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_r = purple_find_conversation_with_account(__pyx_1, __pyx_2, purple_accounts_find(__pyx_4, __pyx_6));
+ goto __pyx_L0;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_5);
+ __Pyx_WriteUnraisable("purple.Conversation._get_structure");
+ __pyx_r = 0;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":55
+ * self.__account.username, self.__account.protocol.id))
+ *
+ * def __get_exists(self): # <<<<<<<<<<<<<<
+ * return self.__exists
+ * exists = property(__get_exists)
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation___get_exists(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_12Conversation___get_exists(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":56
+ *
+ * def __get_exists(self):
+ * return self.__exists # <<<<<<<<<<<<<<
+ * exists = property(__get_exists)
+ *
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists);
+ __pyx_r = ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":59
+ * exists = property(__get_exists)
+ *
+ * def __get_account(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return self.__account
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation___get_account(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_12Conversation___get_account(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":60
+ *
+ * def __get_account(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return self.__account
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":61
+ * def __get_account(self):
+ * if self.__exists:
+ * return self.__account # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ Py_INCREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account);
+ __pyx_r = ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":63
+ * return self.__account
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * account = property(__get_account)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_AddTraceback("purple.Conversation.__get_account");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":66
+ * account = property(__get_account)
+ *
+ * def __get_name(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return <char *> conversation.purple_conversation_get_name( \
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation___get_name(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_6purple_12Conversation___get_name(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":67
+ *
+ * def __get_name(self):
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return <char *> conversation.purple_conversation_get_name( \
+ * self._get_structure())
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":69
+ * if self.__exists:
+ * return <char *> conversation.purple_conversation_get_name( \
+ * self._get_structure()) # <<<<<<<<<<<<<<
+ * else:
+ * return None
+ */
+ __pyx_2 = __Pyx_PyBytes_FromString(((char *)purple_conversation_get_name(((struct __pyx_vtabstruct_6purple_Conversation *)((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self))))); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":71
+ * self._get_structure())
+ * else:
+ * return None # <<<<<<<<<<<<<<
+ * name = property(__get_name)
+ *
+ */
+ Py_INCREF(Py_None);
+ __pyx_r = Py_None;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Conversation.__get_name");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":74
+ * name = property(__get_name)
+ *
+ * def new(self): # <<<<<<<<<<<<<<
+ * """
+ * Creates a new conversation.
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation_new(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_12Conversation_new[] = "\n Creates a new conversation.\n\n @return True if successful, False if conversation already exists\n ";
+static PyObject *__pyx_pf_6purple_12Conversation_new(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+ int __pyx_3;
+ char *__pyx_4;
+ PyObject *__pyx_5 = 0;
+ char *__pyx_6;
+ char *__pyx_7;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":80
+ * @return True if successful, False if conversation already exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * return False
+ * else:
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":81
+ * """
+ * if self.__exists:
+ * return False # <<<<<<<<<<<<<<
+ * else:
+ * conversation.purple_conversation_new(self.__type, \
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":83
+ * return False
+ * else:
+ * conversation.purple_conversation_new(self.__type, \ # <<<<<<<<<<<<<<
+ * account.purple_accounts_find(self.__account.username, \
+ * self.__account.protocol.id), self.__name)
+ */
+ __pyx_3 = __pyx_PyInt_int(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__type); if (unlikely((__pyx_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":84
+ * else:
+ * conversation.purple_conversation_new(self.__type, \
+ * account.purple_accounts_find(self.__account.username, \ # <<<<<<<<<<<<<<
+ * self.__account.protocol.id), self.__name)
+ * self.__exists = True
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account, __pyx_kp_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_PyBytes_AsString(__pyx_2); if (unlikely((!__pyx_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":85
+ * conversation.purple_conversation_new(self.__type, \
+ * account.purple_accounts_find(self.__account.username, \
+ * self.__account.protocol.id), self.__name) # <<<<<<<<<<<<<<
+ * self.__exists = True
+ * return True
+ */
+ __pyx_2 = PyObject_GetAttr(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__account, __pyx_kp_protocol); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_5 = PyObject_GetAttr(__pyx_2, __pyx_kp_id); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_6 = __Pyx_PyBytes_AsString(__pyx_5); if (unlikely((!__pyx_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_7 = __Pyx_PyBytes_AsString(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__name); if (unlikely((!__pyx_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_conversation_new(__pyx_3, purple_accounts_find(__pyx_4, __pyx_6), __pyx_7);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":86
+ * account.purple_accounts_find(self.__account.username, \
+ * self.__account.protocol.id), self.__name)
+ * self.__exists = True # <<<<<<<<<<<<<<
+ * return True
+ *
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":87
+ * self.__account.protocol.id), self.__name)
+ * self.__exists = True
+ * return True # <<<<<<<<<<<<<<
+ *
+ * def destroy(self):
+ */
+ __pyx_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_5;
+ __pyx_5 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_5);
+ __Pyx_AddTraceback("purple.Conversation.new");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":89
+ * return True
+ *
+ * def destroy(self): # <<<<<<<<<<<<<<
+ * """
+ * Destroys a conversation.
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation_destroy(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static char __pyx_doc_6purple_12Conversation_destroy[] = "\n Destroys a conversation.\n\n @return True if successful, False if conversation doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_12Conversation_destroy(PyObject *__pyx_v_self, PyObject *unused) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ PyObject *__pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":95
+ * @return True if successful, False if conversation doesn't exists
+ * """
+ * if self.__exists: # <<<<<<<<<<<<<<
+ * conversation.purple_conversation_destroy(self._get_structure())
+ * self.__exists = False
+ */
+ __pyx_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":96
+ * """
+ * if self.__exists:
+ * conversation.purple_conversation_destroy(self._get_structure()) # <<<<<<<<<<<<<<
+ * self.__exists = False
+ * return True
+ */
+ purple_conversation_destroy(((struct __pyx_vtabstruct_6purple_Conversation *)((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":97
+ * if self.__exists:
+ * conversation.purple_conversation_destroy(self._get_structure())
+ * self.__exists = False # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists);
+ ((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":98
+ * conversation.purple_conversation_destroy(self._get_structure())
+ * self.__exists = False
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":100
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ *
+ * def set_ui_ops(self, cbs):
+ */
+ __pyx_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple.Conversation.destroy");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":102
+ * return False
+ *
+ * def set_ui_ops(self, cbs): # <<<<<<<<<<<<<<
+ * """
+ * Sets UI operations for a conversation.
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation_set_ui_ops(PyObject *__pyx_v_self, PyObject *__pyx_v_cbs); /*proto*/
+static char __pyx_doc_6purple_12Conversation_set_ui_ops[] = "\n Sets UI operations for a conversation.\n\n @return True if sucessful, False otherwise\n ";
+static PyObject *__pyx_pf_6purple_12Conversation_set_ui_ops(PyObject *__pyx_v_self, PyObject *__pyx_v_cbs) {
+ PurpleConversationUiOps __pyx_v_c_conv_ui_ops;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":111
+ * cdef conversation.PurpleConversationUiOps c_conv_ui_ops
+ *
+ * c_conv_ui_ops.create_conversation = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.destroy_conversation = NULL
+ * c_conv_ui_ops.write_chat = NULL
+ */
+ __pyx_v_c_conv_ui_ops.create_conversation = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":112
+ *
+ * c_conv_ui_ops.create_conversation = NULL
+ * c_conv_ui_ops.destroy_conversation = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_chat = NULL
+ * c_conv_ui_ops.write_im = NULL
+ */
+ __pyx_v_c_conv_ui_ops.destroy_conversation = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":113
+ * c_conv_ui_ops.create_conversation = NULL
+ * c_conv_ui_ops.destroy_conversation = NULL
+ * c_conv_ui_ops.write_chat = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_im = NULL
+ * c_conv_ui_ops.write_conv = NULL
+ */
+ __pyx_v_c_conv_ui_ops.write_chat = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":114
+ * c_conv_ui_ops.destroy_conversation = NULL
+ * c_conv_ui_ops.write_chat = NULL
+ * c_conv_ui_ops.write_im = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.write_conv = NULL
+ * c_conv_ui_ops.chat_add_users = NULL
+ */
+ __pyx_v_c_conv_ui_ops.write_im = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":115
+ * c_conv_ui_ops.write_chat = NULL
+ * c_conv_ui_ops.write_im = NULL
+ * c_conv_ui_ops.write_conv = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_add_users = NULL
+ * c_conv_ui_ops.chat_rename_user = NULL
+ */
+ __pyx_v_c_conv_ui_ops.write_conv = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":116
+ * c_conv_ui_ops.write_im = NULL
+ * c_conv_ui_ops.write_conv = NULL
+ * c_conv_ui_ops.chat_add_users = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_rename_user = NULL
+ * c_conv_ui_ops.chat_remove_users = NULL
+ */
+ __pyx_v_c_conv_ui_ops.chat_add_users = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":117
+ * c_conv_ui_ops.write_conv = NULL
+ * c_conv_ui_ops.chat_add_users = NULL
+ * c_conv_ui_ops.chat_rename_user = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_remove_users = NULL
+ * c_conv_ui_ops.chat_update_user = NULL
+ */
+ __pyx_v_c_conv_ui_ops.chat_rename_user = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":118
+ * c_conv_ui_ops.chat_add_users = NULL
+ * c_conv_ui_ops.chat_rename_user = NULL
+ * c_conv_ui_ops.chat_remove_users = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.chat_update_user = NULL
+ * c_conv_ui_ops.present = NULL
+ */
+ __pyx_v_c_conv_ui_ops.chat_remove_users = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":119
+ * c_conv_ui_ops.chat_rename_user = NULL
+ * c_conv_ui_ops.chat_remove_users = NULL
+ * c_conv_ui_ops.chat_update_user = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.present = NULL
+ * c_conv_ui_ops.has_focus = NULL
+ */
+ __pyx_v_c_conv_ui_ops.chat_update_user = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":120
+ * c_conv_ui_ops.chat_remove_users = NULL
+ * c_conv_ui_ops.chat_update_user = NULL
+ * c_conv_ui_ops.present = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.has_focus = NULL
+ * c_conv_ui_ops.custom_smiley_add = NULL
+ */
+ __pyx_v_c_conv_ui_ops.present = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":121
+ * c_conv_ui_ops.chat_update_user = NULL
+ * c_conv_ui_ops.present = NULL
+ * c_conv_ui_ops.has_focus = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_add = NULL
+ * c_conv_ui_ops.custom_smiley_write = NULL
+ */
+ __pyx_v_c_conv_ui_ops.has_focus = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":122
+ * c_conv_ui_ops.present = NULL
+ * c_conv_ui_ops.has_focus = NULL
+ * c_conv_ui_ops.custom_smiley_add = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_write = NULL
+ * c_conv_ui_ops.custom_smiley_close = NULL
+ */
+ __pyx_v_c_conv_ui_ops.custom_smiley_add = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":123
+ * c_conv_ui_ops.has_focus = NULL
+ * c_conv_ui_ops.custom_smiley_add = NULL
+ * c_conv_ui_ops.custom_smiley_write = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.custom_smiley_close = NULL
+ * c_conv_ui_ops.send_confirm = NULL
+ */
+ __pyx_v_c_conv_ui_ops.custom_smiley_write = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":124
+ * c_conv_ui_ops.custom_smiley_add = NULL
+ * c_conv_ui_ops.custom_smiley_write = NULL
+ * c_conv_ui_ops.custom_smiley_close = NULL # <<<<<<<<<<<<<<
+ * c_conv_ui_ops.send_confirm = NULL
+ *
+ */
+ __pyx_v_c_conv_ui_ops.custom_smiley_close = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":125
+ * c_conv_ui_ops.custom_smiley_write = NULL
+ * c_conv_ui_ops.custom_smiley_close = NULL
+ * c_conv_ui_ops.send_confirm = NULL # <<<<<<<<<<<<<<
+ *
+ * conversation.purple_conversation_set_ui_ops(self._get_structure(), \
+ */
+ __pyx_v_c_conv_ui_ops.send_confirm = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":128
+ *
+ * conversation.purple_conversation_set_ui_ops(self._get_structure(), \
+ * &c_conv_ui_ops) # <<<<<<<<<<<<<<
+ * return True
+ *
+ */
+ purple_conversation_set_ui_ops(((struct __pyx_vtabstruct_6purple_Conversation *)((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)), (&__pyx_v_c_conv_ui_ops));
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":129
+ * conversation.purple_conversation_set_ui_ops(self._get_structure(), \
+ * &c_conv_ui_ops)
+ * return True # <<<<<<<<<<<<<<
+ *
+ * def im_send(self, message):
+ */
+ __pyx_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("purple.Conversation.set_ui_ops");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+
+/* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":131
+ * return True
+ *
+ * def im_send(self, message): # <<<<<<<<<<<<<<
+ * """
+ * Sends a message to this IM conversation.
+ */
+
+static PyObject *__pyx_pf_6purple_12Conversation_im_send(PyObject *__pyx_v_self, PyObject *__pyx_v_message); /*proto*/
+static char __pyx_doc_6purple_12Conversation_im_send[] = "\n Sends a message to this IM conversation.\n\n @return True if successful, False if conversation is not IM or conversation doesn't exists\n ";
+static PyObject *__pyx_pf_6purple_12Conversation_im_send(PyObject *__pyx_v_self, PyObject *__pyx_v_message) {
+ PyObject *__pyx_r;
+ int __pyx_1;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ char *__pyx_5;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":137
+ * @return True if successful, False if conversation is not IM or conversation doesn't exists
+ * """
+ * if self.__exists and self.__type == conversation.PURPLE_CONV_TYPE_IM: # <<<<<<<<<<<<<<
+ * conversation.purple_conv_im_send( \
+ * conversation.purple_conversation_get_im_data( \
+ */
+ __pyx_2 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__exists); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = __pyx_2;
+ if (__pyx_1) {
+ __pyx_3 = PyInt_FromLong(PURPLE_CONV_TYPE_IM); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyObject_RichCompare(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__type, __pyx_3, Py_EQ); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_4); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ }
+ if (__pyx_1) {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":140
+ * conversation.purple_conv_im_send( \
+ * conversation.purple_conversation_get_im_data( \
+ * self._get_structure()), message) # <<<<<<<<<<<<<<
+ * return True
+ * else:
+ */
+ __pyx_5 = __Pyx_PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ purple_conv_im_send(purple_conversation_get_im_data(((struct __pyx_vtabstruct_6purple_Conversation *)((struct __pyx_obj_6purple_Conversation *)__pyx_v_self)->__pyx_vtab)->_get_structure(((struct __pyx_obj_6purple_Conversation *)__pyx_v_self))), __pyx_5);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":141
+ * conversation.purple_conversation_get_im_data( \
+ * self._get_structure()), message)
+ * return True # <<<<<<<<<<<<<<
+ * else:
+ * return False
+ */
+ __pyx_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":143
+ * return True
+ * else:
+ * return False # <<<<<<<<<<<<<<
+ */
+ __pyx_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_r = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L0;
+ }
+ __pyx_L5:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ __Pyx_AddTraceback("purple.Conversation.im_send");
+ __pyx_r = NULL;
+ __pyx_L0:;
+ return __pyx_r;
+}
+static struct __pyx_vtabstruct_6purple_Purple __pyx_vtable_6purple_Purple;
+
+static PyObject *__pyx_tp_new_6purple_Purple(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_Purple *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_Purple *)o);
+ p->__pyx_vtab = __pyx_vtabptr_6purple_Purple;
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_Purple(PyObject *o) {
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static struct PyMethodDef __pyx_methods_6purple_Purple[] = {
+ {"destroy", (PyCFunction)__pyx_pf_6purple_6Purple_destroy, METH_NOARGS, 0},
+ {"__get_ui_name", (PyCFunction)__pyx_pf_6purple_6Purple___get_ui_name, METH_NOARGS, 0},
+ {"__glib_iteration_when_idle", (PyCFunction)__pyx_pf_6purple_6Purple___glib_iteration_when_idle, METH_NOARGS, 0},
+ {"purple_init", (PyCFunction)__pyx_pf_6purple_6Purple_purple_init, METH_NOARGS, __pyx_doc_6purple_6Purple_purple_init},
+ {"add_callback", (PyCFunction)__pyx_pf_6purple_6Purple_add_callback, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6purple_6Purple_add_callback},
+ {"signal_connect", (PyCFunction)__pyx_pf_6purple_6Purple_signal_connect, METH_VARARGS|METH_KEYWORDS, 0},
+ {"accounts_get_all", (PyCFunction)__pyx_pf_6purple_6Purple_accounts_get_all, METH_NOARGS, 0},
+ {"accounts_get_all_active", (PyCFunction)__pyx_pf_6purple_6Purple_accounts_get_all_active, METH_NOARGS, 0},
+ {"protocols_get_all", (PyCFunction)__pyx_pf_6purple_6Purple_protocols_get_all, METH_NOARGS, 0},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Purple = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Purple = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Purple = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Purple = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_Purple = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.Purple", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_Purple), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_Purple, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_Purple, /*tp_as_number*/
+ &__pyx_tp_as_sequence_Purple, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_Purple, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_Purple, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
+ " Purple class.\n\n @param debug_enabled: Toggle debug messages.\n @param default_path: Full path for libpurple user files.\n ", /*tp_doc*/
+ 0, /*tp_traverse*/
+ 0, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_Purple, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_6Purple___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_Purple, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+static struct __pyx_vtabstruct_6purple_Protocol __pyx_vtable_6purple_Protocol;
+
+static PyObject *__pyx_tp_new_6purple_Protocol(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_Protocol *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_Protocol *)o);
+ p->__pyx_vtab = __pyx_vtabptr_6purple_Protocol;
+ p->__id = Py_None; Py_INCREF(Py_None);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_Protocol(PyObject *o) {
+ struct __pyx_obj_6purple_Protocol *p = (struct __pyx_obj_6purple_Protocol *)o;
+ Py_XDECREF(p->__id);
+ Py_XDECREF(p->__exists);
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_6purple_Protocol(PyObject *o, visitproc v, void *a) {
+ int e;
+ struct __pyx_obj_6purple_Protocol *p = (struct __pyx_obj_6purple_Protocol *)o;
+ if (p->__id) {
+ e = (*v)(p->__id, a); if (e) return e;
+ }
+ if (p->__exists) {
+ e = (*v)(p->__exists, a); if (e) return e;
+ }
+ return 0;
+}
+
+static int __pyx_tp_clear_6purple_Protocol(PyObject *o) {
+ struct __pyx_obj_6purple_Protocol *p = (struct __pyx_obj_6purple_Protocol *)o;
+ PyObject* tmp;
+ tmp = ((PyObject*)p->__id);
+ p->__id = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__exists);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ return 0;
+}
+
+static struct PyMethodDef __pyx_methods_6purple_Protocol[] = {
+ {"__get_exists", (PyCFunction)__pyx_pf_6purple_8Protocol___get_exists, METH_NOARGS, 0},
+ {"__get_id", (PyCFunction)__pyx_pf_6purple_8Protocol___get_id, METH_NOARGS, 0},
+ {"__get_name", (PyCFunction)__pyx_pf_6purple_8Protocol___get_name, METH_NOARGS, 0},
+ {"__get_options_labels", (PyCFunction)__pyx_pf_6purple_8Protocol___get_options_labels, METH_NOARGS, 0},
+ {"__get_options_values", (PyCFunction)__pyx_pf_6purple_8Protocol___get_options_values, METH_NOARGS, 0},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Protocol = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Protocol = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Protocol = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Protocol = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_Protocol = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.Protocol", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_Protocol), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_Protocol, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_Protocol, /*tp_as_number*/
+ &__pyx_tp_as_sequence_Protocol, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_Protocol, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_Protocol, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ "\n Protocol class\n @param id\n ", /*tp_doc*/
+ __pyx_tp_traverse_6purple_Protocol, /*tp_traverse*/
+ __pyx_tp_clear_6purple_Protocol, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_Protocol, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_8Protocol___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_Protocol, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+
+static PyObject *__pyx_tp_new_6purple_ProxyInfoType(PyTypeObject *t, PyObject *a, PyObject *k) {
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_ProxyInfoType(PyObject *o) {
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static struct PyMethodDef __pyx_methods_6purple_ProxyInfoType[] = {
+ {"get_NONE", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_NONE, METH_NOARGS, 0},
+ {"get_USE_GLOBAL", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_USE_GLOBAL, METH_NOARGS, 0},
+ {"get_HTTP", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_HTTP, METH_NOARGS, 0},
+ {"get_SOCKS4", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_SOCKS4, METH_NOARGS, 0},
+ {"get_SOCKS5", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_SOCKS5, METH_NOARGS, 0},
+ {"get_USE_ENVVAR", (PyCFunction)__pyx_pf_6purple_13ProxyInfoType_get_USE_ENVVAR, METH_NOARGS, 0},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_ProxyInfoType = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_ProxyInfoType = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_ProxyInfoType = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_ProxyInfoType = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_ProxyInfoType = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.ProxyInfoType", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_ProxyInfoType), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_ProxyInfoType, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_ProxyInfoType, /*tp_as_number*/
+ &__pyx_tp_as_sequence_ProxyInfoType, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_ProxyInfoType, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_ProxyInfoType, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
+ 0, /*tp_doc*/
+ 0, /*tp_traverse*/
+ 0, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_ProxyInfoType, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_13ProxyInfoType___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_ProxyInfoType, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+
+static PyObject *__pyx_tp_new_6purple_ProxyInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_ProxyInfo *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_ProxyInfo *)o);
+ p->types = Py_None; Py_INCREF(Py_None);
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_ProxyInfo(PyObject *o) {
+ struct __pyx_obj_6purple_ProxyInfo *p = (struct __pyx_obj_6purple_ProxyInfo *)o;
+ Py_XDECREF(p->types);
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_6purple_ProxyInfo(PyObject *o, visitproc v, void *a) {
+ int e;
+ struct __pyx_obj_6purple_ProxyInfo *p = (struct __pyx_obj_6purple_ProxyInfo *)o;
+ if (p->types) {
+ e = (*v)(p->types, a); if (e) return e;
+ }
+ return 0;
+}
+
+static int __pyx_tp_clear_6purple_ProxyInfo(PyObject *o) {
+ struct __pyx_obj_6purple_ProxyInfo *p = (struct __pyx_obj_6purple_ProxyInfo *)o;
+ PyObject* tmp;
+ tmp = ((PyObject*)p->types);
+ p->types = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ return 0;
+}
+
+static struct PyMethodDef __pyx_methods_6purple_ProxyInfo[] = {
+ {"set_type", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_type, METH_O, 0},
+ {"set_host", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_host, METH_O, 0},
+ {"set_port", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_port, METH_O, 0},
+ {"set_username", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_username, METH_O, 0},
+ {"set_password", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_password, METH_O, 0},
+ {"get_types", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_get_types, METH_NOARGS, 0},
+ {"set_info", (PyCFunction)__pyx_pf_6purple_9ProxyInfo_set_info, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6purple_9ProxyInfo_set_info},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_ProxyInfo = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_ProxyInfo = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_ProxyInfo = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_ProxyInfo = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_ProxyInfo = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.ProxyInfo", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_ProxyInfo), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_ProxyInfo, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_ProxyInfo, /*tp_as_number*/
+ &__pyx_tp_as_sequence_ProxyInfo, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_ProxyInfo, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_ProxyInfo, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ 0, /*tp_doc*/
+ __pyx_tp_traverse_6purple_ProxyInfo, /*tp_traverse*/
+ __pyx_tp_clear_6purple_ProxyInfo, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_ProxyInfo, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_9ProxyInfo___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_ProxyInfo, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+static struct __pyx_vtabstruct_6purple_Account __pyx_vtable_6purple_Account;
+
+static PyObject *__pyx_tp_new_6purple_Account(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_Account *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_Account *)o);
+ p->__pyx_vtab = __pyx_vtabptr_6purple_Account;
+ p->__username = Py_None; Py_INCREF(Py_None);
+ p->__protocol = Py_None; Py_INCREF(Py_None);
+ p->__core = Py_None; Py_INCREF(Py_None);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_Account(PyObject *o) {
+ struct __pyx_obj_6purple_Account *p = (struct __pyx_obj_6purple_Account *)o;
+ Py_XDECREF(p->__username);
+ Py_XDECREF(p->__protocol);
+ Py_XDECREF(p->__core);
+ Py_XDECREF(p->__exists);
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_6purple_Account(PyObject *o, visitproc v, void *a) {
+ int e;
+ struct __pyx_obj_6purple_Account *p = (struct __pyx_obj_6purple_Account *)o;
+ if (p->__username) {
+ e = (*v)(p->__username, a); if (e) return e;
+ }
+ if (p->__protocol) {
+ e = (*v)(p->__protocol, a); if (e) return e;
+ }
+ if (p->__core) {
+ e = (*v)(p->__core, a); if (e) return e;
+ }
+ if (p->__exists) {
+ e = (*v)(p->__exists, a); if (e) return e;
+ }
+ return 0;
+}
+
+static int __pyx_tp_clear_6purple_Account(PyObject *o) {
+ struct __pyx_obj_6purple_Account *p = (struct __pyx_obj_6purple_Account *)o;
+ PyObject* tmp;
+ tmp = ((PyObject*)p->__username);
+ p->__username = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__protocol);
+ p->__protocol = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__core);
+ p->__core = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__exists);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ return 0;
+}
+
+static struct PyMethodDef __pyx_methods_6purple_Account[] = {
+ {"__is_connected", (PyCFunction)__pyx_pf_6purple_7Account___is_connected, METH_NOARGS, 0},
+ {"__is_connecting", (PyCFunction)__pyx_pf_6purple_7Account___is_connecting, METH_NOARGS, 0},
+ {"__is_disconnected", (PyCFunction)__pyx_pf_6purple_7Account___is_disconnected, METH_NOARGS, 0},
+ {"__get_core", (PyCFunction)__pyx_pf_6purple_7Account___get_core, METH_NOARGS, 0},
+ {"__get_exists", (PyCFunction)__pyx_pf_6purple_7Account___get_exists, METH_NOARGS, 0},
+ {"__get_username", (PyCFunction)__pyx_pf_6purple_7Account___get_username, METH_NOARGS, 0},
+ {"__get_protocol", (PyCFunction)__pyx_pf_6purple_7Account___get_protocol, METH_NOARGS, 0},
+ {"_get_protocol_options", (PyCFunction)__pyx_pf_6purple_7Account__get_protocol_options, METH_NOARGS, __pyx_doc_6purple_7Account__get_protocol_options},
+ {"__get_password", (PyCFunction)__pyx_pf_6purple_7Account___get_password, METH_NOARGS, 0},
+ {"__get_alias", (PyCFunction)__pyx_pf_6purple_7Account___get_alias, METH_NOARGS, 0},
+ {"__get_user_info", (PyCFunction)__pyx_pf_6purple_7Account___get_user_info, METH_NOARGS, 0},
+ {"__get_remember_password", (PyCFunction)__pyx_pf_6purple_7Account___get_remember_password, METH_NOARGS, 0},
+ {"__get_enabled", (PyCFunction)__pyx_pf_6purple_7Account___get_enabled, METH_NOARGS, 0},
+ {"__get_status_types", (PyCFunction)__pyx_pf_6purple_7Account___get_status_types, METH_NOARGS, 0},
+ {"__get_active_status", (PyCFunction)__pyx_pf_6purple_7Account___get_active_status, METH_NOARGS, 0},
+ {"set_username", (PyCFunction)__pyx_pf_6purple_7Account_set_username, METH_O, __pyx_doc_6purple_7Account_set_username},
+ {"set_protocol", (PyCFunction)__pyx_pf_6purple_7Account_set_protocol, METH_O, __pyx_doc_6purple_7Account_set_protocol},
+ {"set_protocol_options", (PyCFunction)__pyx_pf_6purple_7Account_set_protocol_options, METH_O, __pyx_doc_6purple_7Account_set_protocol_options},
+ {"set_password", (PyCFunction)__pyx_pf_6purple_7Account_set_password, METH_O, __pyx_doc_6purple_7Account_set_password},
+ {"set_alias", (PyCFunction)__pyx_pf_6purple_7Account_set_alias, METH_O, __pyx_doc_6purple_7Account_set_alias},
+ {"set_user_info", (PyCFunction)__pyx_pf_6purple_7Account_set_user_info, METH_O, __pyx_doc_6purple_7Account_set_user_info},
+ {"set_remember_password", (PyCFunction)__pyx_pf_6purple_7Account_set_remember_password, METH_O, __pyx_doc_6purple_7Account_set_remember_password},
+ {"set_enabled", (PyCFunction)__pyx_pf_6purple_7Account_set_enabled, METH_O, __pyx_doc_6purple_7Account_set_enabled},
+ {"new", (PyCFunction)__pyx_pf_6purple_7Account_new, METH_NOARGS, __pyx_doc_6purple_7Account_new},
+ {"remove", (PyCFunction)__pyx_pf_6purple_7Account_remove, METH_NOARGS, __pyx_doc_6purple_7Account_remove},
+ {"connect", (PyCFunction)__pyx_pf_6purple_7Account_connect, METH_NOARGS, __pyx_doc_6purple_7Account_connect},
+ {"disconnect", (PyCFunction)__pyx_pf_6purple_7Account_disconnect, METH_NOARGS, __pyx_doc_6purple_7Account_disconnect},
+ {"add_buddy", (PyCFunction)__pyx_pf_6purple_7Account_add_buddy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6purple_7Account_add_buddy},
+ {"remove_buddy", (PyCFunction)__pyx_pf_6purple_7Account_remove_buddy, METH_O, __pyx_doc_6purple_7Account_remove_buddy},
+ {"get_buddies_online", (PyCFunction)__pyx_pf_6purple_7Account_get_buddies_online, METH_NOARGS, 0},
+ {"request_add_buddy", (PyCFunction)__pyx_pf_6purple_7Account_request_add_buddy, METH_VARARGS|METH_KEYWORDS, 0},
+ {"set_active_status", (PyCFunction)__pyx_pf_6purple_7Account_set_active_status, METH_VARARGS|METH_KEYWORDS, 0},
+ {"set_status_message", (PyCFunction)__pyx_pf_6purple_7Account_set_status_message, METH_VARARGS|METH_KEYWORDS, 0},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Account = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Account = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Account = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Account = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_Account = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.Account", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_Account), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_Account, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_Account, /*tp_as_number*/
+ &__pyx_tp_as_sequence_Account, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_Account, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_Account, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ "\n Account class\n @param username\n @param protocol Protocol class instance\n @param core Purple class instance\n ", /*tp_doc*/
+ __pyx_tp_traverse_6purple_Account, /*tp_traverse*/
+ __pyx_tp_clear_6purple_Account, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_Account, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_7Account___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_Account, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+static struct __pyx_vtabstruct_6purple_Buddy __pyx_vtable_6purple_Buddy;
+
+static PyObject *__pyx_tp_new_6purple_Buddy(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_Buddy *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_Buddy *)o);
+ p->__pyx_vtab = __pyx_vtabptr_6purple_Buddy;
+ p->__account = Py_None; Py_INCREF(Py_None);
+ p->__name = Py_None; Py_INCREF(Py_None);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_Buddy(PyObject *o) {
+ struct __pyx_obj_6purple_Buddy *p = (struct __pyx_obj_6purple_Buddy *)o;
+ Py_XDECREF(p->__account);
+ Py_XDECREF(p->__name);
+ Py_XDECREF(p->__exists);
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_6purple_Buddy(PyObject *o, visitproc v, void *a) {
+ int e;
+ struct __pyx_obj_6purple_Buddy *p = (struct __pyx_obj_6purple_Buddy *)o;
+ if (p->__account) {
+ e = (*v)(p->__account, a); if (e) return e;
+ }
+ if (p->__name) {
+ e = (*v)(p->__name, a); if (e) return e;
+ }
+ if (p->__exists) {
+ e = (*v)(p->__exists, a); if (e) return e;
+ }
+ return 0;
+}
+
+static int __pyx_tp_clear_6purple_Buddy(PyObject *o) {
+ struct __pyx_obj_6purple_Buddy *p = (struct __pyx_obj_6purple_Buddy *)o;
+ PyObject* tmp;
+ tmp = ((PyObject*)p->__account);
+ p->__account = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__name);
+ p->__name = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__exists);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ return 0;
+}
+
+static struct PyMethodDef __pyx_methods_6purple_Buddy[] = {
+ {"__get_exists", (PyCFunction)__pyx_pf_6purple_5Buddy___get_exists, METH_NOARGS, 0},
+ {"__get_name", (PyCFunction)__pyx_pf_6purple_5Buddy___get_name, METH_NOARGS, 0},
+ {"__get_account", (PyCFunction)__pyx_pf_6purple_5Buddy___get_account, METH_NOARGS, 0},
+ {"__get_alias", (PyCFunction)__pyx_pf_6purple_5Buddy___get_alias, METH_NOARGS, 0},
+ {"__get_group", (PyCFunction)__pyx_pf_6purple_5Buddy___get_group, METH_NOARGS, 0},
+ {"__get_server_alias", (PyCFunction)__pyx_pf_6purple_5Buddy___get_server_alias, METH_NOARGS, 0},
+ {"__get_contact_alias", (PyCFunction)__pyx_pf_6purple_5Buddy___get_contact_alias, METH_NOARGS, 0},
+ {"__get_local_alias", (PyCFunction)__pyx_pf_6purple_5Buddy___get_local_alias, METH_NOARGS, 0},
+ {"__get_available", (PyCFunction)__pyx_pf_6purple_5Buddy___get_available, METH_NOARGS, 0},
+ {"__get_online", (PyCFunction)__pyx_pf_6purple_5Buddy___get_online, METH_NOARGS, 0},
+ {"__get_idle", (PyCFunction)__pyx_pf_6purple_5Buddy___get_idle, METH_NOARGS, 0},
+ {"__get_active_status", (PyCFunction)__pyx_pf_6purple_5Buddy___get_active_status, METH_NOARGS, 0},
+ {"set_alias", (PyCFunction)__pyx_pf_6purple_5Buddy_set_alias, METH_O, 0},
+ {"set_group", (PyCFunction)__pyx_pf_6purple_5Buddy_set_group, METH_O, 0},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Buddy = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Buddy = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Buddy = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Buddy = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_Buddy = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.Buddy", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_Buddy), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_Buddy, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_Buddy, /*tp_as_number*/
+ &__pyx_tp_as_sequence_Buddy, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_Buddy, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_Buddy, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ "\n Buddy class\n @param name\n @param account\n ", /*tp_doc*/
+ __pyx_tp_traverse_6purple_Buddy, /*tp_traverse*/
+ __pyx_tp_clear_6purple_Buddy, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_Buddy, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_5Buddy___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_Buddy, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+static struct __pyx_vtabstruct_6purple_Conversation __pyx_vtable_6purple_Conversation;
+
+static PyObject *__pyx_tp_new_6purple_Conversation(PyTypeObject *t, PyObject *a, PyObject *k) {
+ struct __pyx_obj_6purple_Conversation *p;
+ PyObject *o = (*t->tp_alloc)(t, 0);
+ if (!o) return 0;
+ p = ((struct __pyx_obj_6purple_Conversation *)o);
+ p->__pyx_vtab = __pyx_vtabptr_6purple_Conversation;
+ p->__account = Py_None; Py_INCREF(Py_None);
+ p->__name = Py_None; Py_INCREF(Py_None);
+ p->__type = Py_None; Py_INCREF(Py_None);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ return o;
+}
+
+static void __pyx_tp_dealloc_6purple_Conversation(PyObject *o) {
+ struct __pyx_obj_6purple_Conversation *p = (struct __pyx_obj_6purple_Conversation *)o;
+ Py_XDECREF(p->__account);
+ Py_XDECREF(p->__name);
+ Py_XDECREF(p->__type);
+ Py_XDECREF(p->__exists);
+ (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_6purple_Conversation(PyObject *o, visitproc v, void *a) {
+ int e;
+ struct __pyx_obj_6purple_Conversation *p = (struct __pyx_obj_6purple_Conversation *)o;
+ if (p->__account) {
+ e = (*v)(p->__account, a); if (e) return e;
+ }
+ if (p->__name) {
+ e = (*v)(p->__name, a); if (e) return e;
+ }
+ if (p->__type) {
+ e = (*v)(p->__type, a); if (e) return e;
+ }
+ if (p->__exists) {
+ e = (*v)(p->__exists, a); if (e) return e;
+ }
+ return 0;
+}
+
+static int __pyx_tp_clear_6purple_Conversation(PyObject *o) {
+ struct __pyx_obj_6purple_Conversation *p = (struct __pyx_obj_6purple_Conversation *)o;
+ PyObject* tmp;
+ tmp = ((PyObject*)p->__account);
+ p->__account = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__name);
+ p->__name = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__type);
+ p->__type = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ tmp = ((PyObject*)p->__exists);
+ p->__exists = Py_None; Py_INCREF(Py_None);
+ Py_XDECREF(tmp);
+ return 0;
+}
+
+static struct PyMethodDef __pyx_methods_6purple_Conversation[] = {
+ {"__get_exists", (PyCFunction)__pyx_pf_6purple_12Conversation___get_exists, METH_NOARGS, 0},
+ {"__get_account", (PyCFunction)__pyx_pf_6purple_12Conversation___get_account, METH_NOARGS, 0},
+ {"__get_name", (PyCFunction)__pyx_pf_6purple_12Conversation___get_name, METH_NOARGS, 0},
+ {"new", (PyCFunction)__pyx_pf_6purple_12Conversation_new, METH_NOARGS, __pyx_doc_6purple_12Conversation_new},
+ {"destroy", (PyCFunction)__pyx_pf_6purple_12Conversation_destroy, METH_NOARGS, __pyx_doc_6purple_12Conversation_destroy},
+ {"set_ui_ops", (PyCFunction)__pyx_pf_6purple_12Conversation_set_ui_ops, METH_O, __pyx_doc_6purple_12Conversation_set_ui_ops},
+ {"im_send", (PyCFunction)__pyx_pf_6purple_12Conversation_im_send, METH_O, __pyx_doc_6purple_12Conversation_im_send},
+ {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Conversation = {
+ 0, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_divide*/
+ #endif
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*nb_positive*/
+ 0, /*nb_absolute*/
+ 0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_coerce*/
+ #endif
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ 0, /*nb_float*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_oct*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_hex*/
+ #endif
+ 0, /*nb_inplace_add*/
+ 0, /*nb_inplace_subtract*/
+ 0, /*nb_inplace_multiply*/
+ #if PY_MAJOR_VERSION < 3
+ 0, /*nb_inplace_divide*/
+ #endif
+ 0, /*nb_inplace_remainder*/
+ 0, /*nb_inplace_power*/
+ 0, /*nb_inplace_lshift*/
+ 0, /*nb_inplace_rshift*/
+ 0, /*nb_inplace_and*/
+ 0, /*nb_inplace_xor*/
+ 0, /*nb_inplace_or*/
+ 0, /*nb_floor_divide*/
+ 0, /*nb_true_divide*/
+ 0, /*nb_inplace_floor_divide*/
+ 0, /*nb_inplace_true_divide*/
+ #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
+ 0, /*nb_index*/
+ #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Conversation = {
+ 0, /*sq_length*/
+ 0, /*sq_concat*/
+ 0, /*sq_repeat*/
+ 0, /*sq_item*/
+ 0, /*sq_slice*/
+ 0, /*sq_ass_item*/
+ 0, /*sq_ass_slice*/
+ 0, /*sq_contains*/
+ 0, /*sq_inplace_concat*/
+ 0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Conversation = {
+ 0, /*mp_length*/
+ 0, /*mp_subscript*/
+ 0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Conversation = {
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getreadbuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getwritebuffer*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getsegcount*/
+ #endif
+ #if PY_MAJOR_VERSION < 3
+ 0, /*bf_getcharbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_getbuffer*/
+ #endif
+ #if PY_VERSION_HEX >= 0x02060000
+ 0, /*bf_releasebuffer*/
+ #endif
+};
+
+PyTypeObject __pyx_type_6purple_Conversation = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "purple.Conversation", /*tp_name*/
+ sizeof(struct __pyx_obj_6purple_Conversation), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ __pyx_tp_dealloc_6purple_Conversation, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ &__pyx_tp_as_number_Conversation, /*tp_as_number*/
+ &__pyx_tp_as_sequence_Conversation, /*tp_as_sequence*/
+ &__pyx_tp_as_mapping_Conversation, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ &__pyx_tp_as_buffer_Conversation, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ "\n Conversation class\n @param type UNKNOWN, IM, CHAT, MISC, ANY\n @param account Your account\n @param name Buddy name\n ", /*tp_doc*/
+ __pyx_tp_traverse_6purple_Conversation, /*tp_traverse*/
+ __pyx_tp_clear_6purple_Conversation, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ __pyx_methods_6purple_Conversation, /*tp_methods*/
+ 0, /*tp_members*/
+ 0, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ __pyx_pf_6purple_12Conversation___init__, /*tp_init*/
+ 0, /*tp_alloc*/
+ __pyx_tp_new_6purple_Conversation, /*tp_new*/
+ 0, /*tp_free*/
+ 0, /*tp_is_gc*/
+ 0, /*tp_bases*/
+ 0, /*tp_mro*/
+ 0, /*tp_cache*/
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+};
+
+static struct PyMethodDef __pyx_methods[] = {
+ {"call_authorize_cb", (PyCFunction)__pyx_pf_6purple_call_authorize_cb, METH_NOARGS, 0},
+ {"call_deny_cb", (PyCFunction)__pyx_pf_6purple_call_deny_cb, METH_NOARGS, 0},
+ {"markup_strip_html", (PyCFunction)__pyx_pf_6purple_markup_strip_html, METH_O, 0},
+ {0, 0, 0, 0}
+};
+
+static void __pyx_init_filenames(void); /*proto*/
+
+#if PY_MAJOR_VERSION >= 3
+static struct PyModuleDef __pyx_moduledef = {
+ PyModuleDef_HEAD_INIT,
+ "purple",
+ 0, /* m_doc */
+ -1, /* m_size */
+ __pyx_methods /* m_methods */,
+ NULL, /* m_reload */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL /* m_free */
+};
+#endif
+
+static __Pyx_StringTabEntry __pyx_string_tab[] = {
+ {&__pyx_kp___init__, __pyx_k___init__, sizeof(__pyx_k___init__), 1, 1, 1},
+ {&__pyx_kp_destroy, __pyx_k_destroy, sizeof(__pyx_k_destroy), 1, 1, 1},
+ {&__pyx_kp___get_ui_name, __pyx_k___get_ui_name, sizeof(__pyx_k___get_ui_name), 1, 1, 1},
+ {&__pyx_kp_ui_name, __pyx_k_ui_name, sizeof(__pyx_k_ui_name), 1, 1, 1},
+ {&__pyx_kp_1, __pyx_k_1, sizeof(__pyx_k_1), 1, 1, 1},
+ {&__pyx_kp_purple_init, __pyx_k_purple_init, sizeof(__pyx_k_purple_init), 1, 1, 1},
+ {&__pyx_kp_add_callback, __pyx_k_add_callback, sizeof(__pyx_k_add_callback), 1, 1, 1},
+ {&__pyx_kp_signal_connect, __pyx_k_signal_connect, sizeof(__pyx_k_signal_connect), 1, 1, 1},
+ {&__pyx_kp_accounts_get_all, __pyx_k_accounts_get_all, sizeof(__pyx_k_accounts_get_all), 1, 1, 1},
+ {&__pyx_kp_2, __pyx_k_2, sizeof(__pyx_k_2), 1, 1, 1},
+ {&__pyx_kp_protocols_get_all, __pyx_k_protocols_get_all, sizeof(__pyx_k_protocols_get_all), 1, 1, 1},
+ {&__pyx_kp___get_exists, __pyx_k___get_exists, sizeof(__pyx_k___get_exists), 1, 1, 1},
+ {&__pyx_kp_exists, __pyx_k_exists, sizeof(__pyx_k_exists), 1, 1, 1},
+ {&__pyx_kp___get_id, __pyx_k___get_id, sizeof(__pyx_k___get_id), 1, 1, 1},
+ {&__pyx_kp_id, __pyx_k_id, sizeof(__pyx_k_id), 1, 1, 1},
+ {&__pyx_kp___get_name, __pyx_k___get_name, sizeof(__pyx_k___get_name), 1, 1, 1},
+ {&__pyx_kp_name, __pyx_k_name, sizeof(__pyx_k_name), 1, 1, 1},
+ {&__pyx_kp_3, __pyx_k_3, sizeof(__pyx_k_3), 1, 1, 1},
+ {&__pyx_kp_options_labels, __pyx_k_options_labels, sizeof(__pyx_k_options_labels), 1, 1, 1},
+ {&__pyx_kp_4, __pyx_k_4, sizeof(__pyx_k_4), 1, 1, 1},
+ {&__pyx_kp_options_values, __pyx_k_options_values, sizeof(__pyx_k_options_values), 1, 1, 1},
+ {&__pyx_kp_get_NONE, __pyx_k_get_NONE, sizeof(__pyx_k_get_NONE), 1, 1, 1},
+ {&__pyx_kp_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 1, 1, 1},
+ {&__pyx_kp_get_USE_GLOBAL, __pyx_k_get_USE_GLOBAL, sizeof(__pyx_k_get_USE_GLOBAL), 1, 1, 1},
+ {&__pyx_kp_USE_GLOBAL, __pyx_k_USE_GLOBAL, sizeof(__pyx_k_USE_GLOBAL), 1, 1, 1},
+ {&__pyx_kp_get_HTTP, __pyx_k_get_HTTP, sizeof(__pyx_k_get_HTTP), 1, 1, 1},
+ {&__pyx_kp_HTTP, __pyx_k_HTTP, sizeof(__pyx_k_HTTP), 1, 1, 1},
+ {&__pyx_kp_5, __pyx_k_5, sizeof(__pyx_k_5), 1, 1, 1},
+ {&__pyx_kp_6, __pyx_k_6, sizeof(__pyx_k_6), 1, 1, 1},
+ {&__pyx_kp_get_USE_ENVVAR, __pyx_k_get_USE_ENVVAR, sizeof(__pyx_k_get_USE_ENVVAR), 1, 1, 1},
+ {&__pyx_kp_USE_ENVVAR, __pyx_k_USE_ENVVAR, sizeof(__pyx_k_USE_ENVVAR), 1, 1, 1},
+ {&__pyx_kp_set_type, __pyx_k_set_type, sizeof(__pyx_k_set_type), 1, 1, 1},
+ {&__pyx_kp_set_host, __pyx_k_set_host, sizeof(__pyx_k_set_host), 1, 1, 1},
+ {&__pyx_kp_set_port, __pyx_k_set_port, sizeof(__pyx_k_set_port), 1, 1, 1},
+ {&__pyx_kp_set_username, __pyx_k_set_username, sizeof(__pyx_k_set_username), 1, 1, 1},
+ {&__pyx_kp_set_password, __pyx_k_set_password, sizeof(__pyx_k_set_password), 1, 1, 1},
+ {&__pyx_kp_get_types, __pyx_k_get_types, sizeof(__pyx_k_get_types), 1, 1, 1},
+ {&__pyx_kp_set_info, __pyx_k_set_info, sizeof(__pyx_k_set_info), 1, 1, 1},
+ {&__pyx_kp___is_connected, __pyx_k___is_connected, sizeof(__pyx_k___is_connected), 1, 1, 1},
+ {&__pyx_kp_is_connected, __pyx_k_is_connected, sizeof(__pyx_k_is_connected), 1, 1, 1},
+ {&__pyx_kp___is_connecting, __pyx_k___is_connecting, sizeof(__pyx_k___is_connecting), 1, 1, 1},
+ {&__pyx_kp_is_connecting, __pyx_k_is_connecting, sizeof(__pyx_k_is_connecting), 1, 1, 1},
+ {&__pyx_kp___is_disconnected, __pyx_k___is_disconnected, sizeof(__pyx_k___is_disconnected), 1, 1, 1},
+ {&__pyx_kp_is_disconnected, __pyx_k_is_disconnected, sizeof(__pyx_k_is_disconnected), 1, 1, 1},
+ {&__pyx_kp___get_core, __pyx_k___get_core, sizeof(__pyx_k___get_core), 1, 1, 1},
+ {&__pyx_kp_core, __pyx_k_core, sizeof(__pyx_k_core), 1, 1, 1},
+ {&__pyx_kp___get_username, __pyx_k___get_username, sizeof(__pyx_k___get_username), 1, 1, 1},
+ {&__pyx_kp_username, __pyx_k_username, sizeof(__pyx_k_username), 1, 1, 1},
+ {&__pyx_kp___get_protocol, __pyx_k___get_protocol, sizeof(__pyx_k___get_protocol), 1, 1, 1},
+ {&__pyx_kp_protocol, __pyx_k_protocol, sizeof(__pyx_k_protocol), 1, 1, 1},
+ {&__pyx_kp_7, __pyx_k_7, sizeof(__pyx_k_7), 1, 1, 1},
+ {&__pyx_kp_protocol_options, __pyx_k_protocol_options, sizeof(__pyx_k_protocol_options), 1, 1, 1},
+ {&__pyx_kp___get_password, __pyx_k___get_password, sizeof(__pyx_k___get_password), 1, 1, 1},
+ {&__pyx_kp_password, __pyx_k_password, sizeof(__pyx_k_password), 1, 1, 1},
+ {&__pyx_kp___get_alias, __pyx_k___get_alias, sizeof(__pyx_k___get_alias), 1, 1, 1},
+ {&__pyx_kp_alias, __pyx_k_alias, sizeof(__pyx_k_alias), 1, 1, 1},
+ {&__pyx_kp___get_user_info, __pyx_k___get_user_info, sizeof(__pyx_k___get_user_info), 1, 1, 1},
+ {&__pyx_kp_user_info, __pyx_k_user_info, sizeof(__pyx_k_user_info), 1, 1, 1},
+ {&__pyx_kp_8, __pyx_k_8, sizeof(__pyx_k_8), 1, 1, 1},
+ {&__pyx_kp_remember_password, __pyx_k_remember_password, sizeof(__pyx_k_remember_password), 1, 1, 1},
+ {&__pyx_kp___get_enabled, __pyx_k___get_enabled, sizeof(__pyx_k___get_enabled), 1, 1, 1},
+ {&__pyx_kp_enabled, __pyx_k_enabled, sizeof(__pyx_k_enabled), 1, 1, 1},
+ {&__pyx_kp___get_status_types, __pyx_k___get_status_types, sizeof(__pyx_k___get_status_types), 1, 1, 1},
+ {&__pyx_kp_status_types, __pyx_k_status_types, sizeof(__pyx_k_status_types), 1, 1, 1},
+ {&__pyx_kp___get_active_status, __pyx_k___get_active_status, sizeof(__pyx_k___get_active_status), 1, 1, 1},
+ {&__pyx_kp_active_status, __pyx_k_active_status, sizeof(__pyx_k_active_status), 1, 1, 1},
+ {&__pyx_kp_set_protocol, __pyx_k_set_protocol, sizeof(__pyx_k_set_protocol), 1, 1, 1},
+ {&__pyx_kp_9, __pyx_k_9, sizeof(__pyx_k_9), 1, 1, 1},
+ {&__pyx_kp_set_alias, __pyx_k_set_alias, sizeof(__pyx_k_set_alias), 1, 1, 1},
+ {&__pyx_kp_set_user_info, __pyx_k_set_user_info, sizeof(__pyx_k_set_user_info), 1, 1, 1},
+ {&__pyx_kp_10, __pyx_k_10, sizeof(__pyx_k_10), 1, 1, 1},
+ {&__pyx_kp_set_enabled, __pyx_k_set_enabled, sizeof(__pyx_k_set_enabled), 1, 1, 1},
+ {&__pyx_kp_new, __pyx_k_new, sizeof(__pyx_k_new), 1, 1, 1},
+ {&__pyx_kp_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 1, 1, 1},
+ {&__pyx_kp_connect, __pyx_k_connect, sizeof(__pyx_k_connect), 1, 1, 1},
+ {&__pyx_kp_disconnect, __pyx_k_disconnect, sizeof(__pyx_k_disconnect), 1, 1, 1},
+ {&__pyx_kp_add_buddy, __pyx_k_add_buddy, sizeof(__pyx_k_add_buddy), 1, 1, 1},
+ {&__pyx_kp_remove_buddy, __pyx_k_remove_buddy, sizeof(__pyx_k_remove_buddy), 1, 1, 1},
+ {&__pyx_kp_get_buddies_online, __pyx_k_get_buddies_online, sizeof(__pyx_k_get_buddies_online), 1, 1, 1},
+ {&__pyx_kp_request_add_buddy, __pyx_k_request_add_buddy, sizeof(__pyx_k_request_add_buddy), 1, 1, 1},
+ {&__pyx_kp_set_active_status, __pyx_k_set_active_status, sizeof(__pyx_k_set_active_status), 1, 1, 1},
+ {&__pyx_kp_set_status_message, __pyx_k_set_status_message, sizeof(__pyx_k_set_status_message), 1, 1, 1},
+ {&__pyx_kp___get_account, __pyx_k___get_account, sizeof(__pyx_k___get_account), 1, 1, 1},
+ {&__pyx_kp_account, __pyx_k_account, sizeof(__pyx_k_account), 1, 1, 1},
+ {&__pyx_kp___get_group, __pyx_k___get_group, sizeof(__pyx_k___get_group), 1, 1, 1},
+ {&__pyx_kp_group, __pyx_k_group, sizeof(__pyx_k_group), 1, 1, 1},
+ {&__pyx_kp___get_server_alias, __pyx_k___get_server_alias, sizeof(__pyx_k___get_server_alias), 1, 1, 1},
+ {&__pyx_kp_server_alias, __pyx_k_server_alias, sizeof(__pyx_k_server_alias), 1, 1, 1},
+ {&__pyx_kp___get_contact_alias, __pyx_k___get_contact_alias, sizeof(__pyx_k___get_contact_alias), 1, 1, 1},
+ {&__pyx_kp_contact_alias, __pyx_k_contact_alias, sizeof(__pyx_k_contact_alias), 1, 1, 1},
+ {&__pyx_kp___get_local_alias, __pyx_k___get_local_alias, sizeof(__pyx_k___get_local_alias), 1, 1, 1},
+ {&__pyx_kp_local_alias, __pyx_k_local_alias, sizeof(__pyx_k_local_alias), 1, 1, 1},
+ {&__pyx_kp___get_available, __pyx_k___get_available, sizeof(__pyx_k___get_available), 1, 1, 1},
+ {&__pyx_kp_available, __pyx_k_available, sizeof(__pyx_k_available), 1, 1, 1},
+ {&__pyx_kp___get_online, __pyx_k___get_online, sizeof(__pyx_k___get_online), 1, 1, 1},
+ {&__pyx_kp_online, __pyx_k_online, sizeof(__pyx_k_online), 1, 1, 1},
+ {&__pyx_kp___get_idle, __pyx_k___get_idle, sizeof(__pyx_k___get_idle), 1, 1, 1},
+ {&__pyx_kp_idle, __pyx_k_idle, sizeof(__pyx_k_idle), 1, 1, 1},
+ {&__pyx_kp_set_group, __pyx_k_set_group, sizeof(__pyx_k_set_group), 1, 1, 1},
+ {&__pyx_kp_set_ui_ops, __pyx_k_set_ui_ops, sizeof(__pyx_k_set_ui_ops), 1, 1, 1},
+ {&__pyx_kp_im_send, __pyx_k_im_send, sizeof(__pyx_k_im_send), 1, 1, 1},
+ {&__pyx_kp_message, __pyx_k_message, sizeof(__pyx_k_message), 1, 1, 1},
+ {&__pyx_kp_ui_version, __pyx_k_ui_version, sizeof(__pyx_k_ui_version), 1, 1, 1},
+ {&__pyx_kp_ui_website, __pyx_k_ui_website, sizeof(__pyx_k_ui_website), 1, 1, 1},
+ {&__pyx_kp_ui_dev_website, __pyx_k_ui_dev_website, sizeof(__pyx_k_ui_dev_website), 1, 1, 1},
+ {&__pyx_kp_debug_enabled, __pyx_k_debug_enabled, sizeof(__pyx_k_debug_enabled), 1, 1, 1},
+ {&__pyx_kp_default_path, __pyx_k_default_path, sizeof(__pyx_k_default_path), 1, 1, 1},
+ {&__pyx_kp_type, __pyx_k_type, sizeof(__pyx_k_type), 1, 1, 1},
+ {&__pyx_kp_callback, __pyx_k_callback, sizeof(__pyx_k_callback), 1, 1, 1},
+ {&__pyx_kp_cb, __pyx_k_cb, sizeof(__pyx_k_cb), 1, 1, 1},
+ {&__pyx_kp_host, __pyx_k_host, sizeof(__pyx_k_host), 1, 1, 1},
+ {&__pyx_kp_port, __pyx_k_port, sizeof(__pyx_k_port), 1, 1, 1},
+ {&__pyx_kp_acc, __pyx_k_acc, sizeof(__pyx_k_acc), 1, 1, 1},
+ {&__pyx_kp_info, __pyx_k_info, sizeof(__pyx_k_info), 1, 1, 1},
+ {&__pyx_kp_po, __pyx_k_po, sizeof(__pyx_k_po), 1, 1, 1},
+ {&__pyx_kp_value, __pyx_k_value, sizeof(__pyx_k_value), 1, 1, 1},
+ {&__pyx_kp_buddy_username, __pyx_k_buddy_username, sizeof(__pyx_k_buddy_username), 1, 1, 1},
+ {&__pyx_kp_buddy_alias, __pyx_k_buddy_alias, sizeof(__pyx_k_buddy_alias), 1, 1, 1},
+ {&__pyx_kp_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 1, 1, 1},
+ {&__pyx_kp_cbs, __pyx_k_cbs, sizeof(__pyx_k_cbs), 1, 1, 1},
+ {&__pyx_kp_ecore, __pyx_k_ecore, sizeof(__pyx_k_ecore), 1, 1, 1},
+ {&__pyx_kp_account_cbs, __pyx_k_account_cbs, sizeof(__pyx_k_account_cbs), 1, 1, 1},
+ {&__pyx_kp_blist_cbs, __pyx_k_blist_cbs, sizeof(__pyx_k_blist_cbs), 1, 1, 1},
+ {&__pyx_kp_connection_cbs, __pyx_k_connection_cbs, sizeof(__pyx_k_connection_cbs), 1, 1, 1},
+ {&__pyx_kp_conversation_cbs, __pyx_k_conversation_cbs, sizeof(__pyx_k_conversation_cbs), 1, 1, 1},
+ {&__pyx_kp_notify_cbs, __pyx_k_notify_cbs, sizeof(__pyx_k_notify_cbs), 1, 1, 1},
+ {&__pyx_kp_request_cbs, __pyx_k_request_cbs, sizeof(__pyx_k_request_cbs), 1, 1, 1},
+ {&__pyx_kp_signal_cbs, __pyx_k_signal_cbs, sizeof(__pyx_k_signal_cbs), 1, 1, 1},
+ {&__pyx_kp_property, __pyx_k_property, sizeof(__pyx_k_property), 1, 1, 1},
+ {&__pyx_kp_has_key, __pyx_k_has_key, sizeof(__pyx_k_has_key), 1, 1, 1},
+ {&__pyx_kp_call_authorize_cb, __pyx_k_call_authorize_cb, sizeof(__pyx_k_call_authorize_cb), 1, 1, 1},
+ {&__pyx_kp_call_deny_cb, __pyx_k_call_deny_cb, sizeof(__pyx_k_call_deny_cb), 1, 1, 1},
+ {&__pyx_kp_54, __pyx_k_54, sizeof(__pyx_k_54), 0, 1, 0},
+ {&__pyx_kp_55, __pyx_k_55, sizeof(__pyx_k_55), 0, 1, 0},
+ {&__pyx_kp_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 1, 0},
+ {&__pyx_kp_61, __pyx_k_61, sizeof(__pyx_k_61), 0, 1, 0},
+ {&__pyx_kp_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 1, 0},
+ {&__pyx_kp_63, __pyx_k_63, sizeof(__pyx_k_63), 0, 1, 0},
+ {&__pyx_kp_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 1, 0},
+ {&__pyx_kp_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 1, 0},
+ {&__pyx_kp_69, __pyx_k_69, sizeof(__pyx_k_69), 0, 1, 0},
+ {&__pyx_kp_70, __pyx_k_70, sizeof(__pyx_k_70), 0, 1, 0},
+ {&__pyx_kp_71, __pyx_k_71, sizeof(__pyx_k_71), 0, 1, 0},
+ {&__pyx_kp_72, __pyx_k_72, sizeof(__pyx_k_72), 0, 1, 0},
+ {&__pyx_kp_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 1, 0},
+ {&__pyx_kp_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 1, 0},
+ {&__pyx_kp_78, __pyx_k_78, sizeof(__pyx_k_78), 0, 1, 0},
+ {&__pyx_kp_79, __pyx_k_79, sizeof(__pyx_k_79), 0, 1, 0},
+ {&__pyx_kp_112, __pyx_k_112, sizeof(__pyx_k_112), 0, 1, 0},
+ {&__pyx_kp_113, __pyx_k_113, sizeof(__pyx_k_113), 0, 1, 0},
+ {&__pyx_kp_118, __pyx_k_118, sizeof(__pyx_k_118), 0, 1, 0},
+ {&__pyx_kp_119, __pyx_k_119, sizeof(__pyx_k_119), 0, 1, 0},
+ {&__pyx_kp_124, __pyx_k_124, sizeof(__pyx_k_124), 0, 1, 0},
+ {&__pyx_kp_125, __pyx_k_125, sizeof(__pyx_k_125), 0, 1, 0},
+ {&__pyx_kp_185, __pyx_k_185, sizeof(__pyx_k_185), 0, 1, 0},
+ {&__pyx_kp_186, __pyx_k_186, sizeof(__pyx_k_186), 0, 1, 0},
+ {&__pyx_kp_222, __pyx_k_222, sizeof(__pyx_k_222), 0, 1, 0},
+ {&__pyx_kp_223, __pyx_k_223, sizeof(__pyx_k_223), 0, 1, 0},
+ {&__pyx_kp_timer_add, __pyx_k_timer_add, sizeof(__pyx_k_timer_add), 1, 1, 1},
+ {&__pyx_kp_c_ui_info, __pyx_k_c_ui_info, sizeof(__pyx_k_c_ui_info), 1, 1, 1},
+ {&__pyx_kp_405, __pyx_k_405, sizeof(__pyx_k_405), 0, 1, 0},
+ {&__pyx_kp_406, __pyx_k_406, sizeof(__pyx_k_406), 0, 1, 0},
+ {&__pyx_kp_407, __pyx_k_407, sizeof(__pyx_k_407), 0, 1, 0},
+ {&__pyx_kp_408, __pyx_k_408, sizeof(__pyx_k_408), 0, 1, 0},
+ {&__pyx_kp_409, __pyx_k_409, sizeof(__pyx_k_409), 0, 1, 0},
+ {&__pyx_kp_410, __pyx_k_410, sizeof(__pyx_k_410), 0, 1, 0},
+ {&__pyx_kp_append, __pyx_k_append, sizeof(__pyx_k_append), 1, 1, 1},
+ {&__pyx_kp_427, __pyx_k_427, sizeof(__pyx_k_427), 0, 1, 0},
+ {&__pyx_kp_428, __pyx_k_428, sizeof(__pyx_k_428), 0, 1, 0},
+ {&__pyx_kp_429, __pyx_k_429, sizeof(__pyx_k_429), 0, 1, 0},
+ {&__pyx_kp_430, __pyx_k_430, sizeof(__pyx_k_430), 0, 1, 0},
+ {&__pyx_kp_431, __pyx_k_431, sizeof(__pyx_k_431), 0, 1, 0},
+ {&__pyx_kp_432, __pyx_k_432, sizeof(__pyx_k_432), 0, 1, 0},
+ {&__pyx_kp_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 1, 1, 1},
+ {&__pyx_kp_433, __pyx_k_433, sizeof(__pyx_k_433), 0, 1, 0},
+ {&__pyx_kp_434, __pyx_k_434, sizeof(__pyx_k_434), 0, 1, 0},
+ {&__pyx_kp_435, __pyx_k_435, sizeof(__pyx_k_435), 0, 1, 0},
+ {&__pyx_kp_436, __pyx_k_436, sizeof(__pyx_k_436), 0, 1, 0},
+ {&__pyx_kp_437, __pyx_k_437, sizeof(__pyx_k_437), 0, 1, 0},
+ {&__pyx_kp_438, __pyx_k_438, sizeof(__pyx_k_438), 0, 1, 0},
+ {&__pyx_kp_439, __pyx_k_439, sizeof(__pyx_k_439), 0, 1, 0},
+ {&__pyx_kp_440, __pyx_k_440, sizeof(__pyx_k_440), 0, 1, 0},
+ {&__pyx_kp_441, __pyx_k_441, sizeof(__pyx_k_441), 0, 1, 0},
+ {&__pyx_kp_442, __pyx_k_442, sizeof(__pyx_k_442), 0, 1, 0},
+ {&__pyx_kp_443, __pyx_k_443, sizeof(__pyx_k_443), 0, 1, 0},
+ {&__pyx_kp_444, __pyx_k_444, sizeof(__pyx_k_444), 0, 1, 0},
+ {&__pyx_kp_445, __pyx_k_445, sizeof(__pyx_k_445), 0, 1, 0},
+ {&__pyx_kp_446, __pyx_k_446, sizeof(__pyx_k_446), 0, 1, 0},
+ {&__pyx_kp_447, __pyx_k_447, sizeof(__pyx_k_447), 0, 1, 0},
+ {&__pyx_kp_448, __pyx_k_448, sizeof(__pyx_k_448), 0, 1, 0},
+ {&__pyx_kp_451, __pyx_k_451, sizeof(__pyx_k_451), 0, 1, 0},
+ {&__pyx_kp_452, __pyx_k_452, sizeof(__pyx_k_452), 0, 1, 0},
+ {&__pyx_kp_453, __pyx_k_453, sizeof(__pyx_k_453), 0, 1, 0},
+ {&__pyx_kp_459, __pyx_k_459, sizeof(__pyx_k_459), 0, 1, 0},
+ {&__pyx_kp_460, __pyx_k_460, sizeof(__pyx_k_460), 0, 1, 0},
+ {&__pyx_kp_461, __pyx_k_461, sizeof(__pyx_k_461), 0, 1, 0},
+ {&__pyx_kp_462, __pyx_k_462, sizeof(__pyx_k_462), 0, 1, 0},
+ {&__pyx_kp_463, __pyx_k_463, sizeof(__pyx_k_463), 0, 1, 0},
+ {&__pyx_kp_464, __pyx_k_464, sizeof(__pyx_k_464), 0, 1, 0},
+ {&__pyx_kp_465, __pyx_k_465, sizeof(__pyx_k_465), 0, 1, 0},
+ {&__pyx_kp_466, __pyx_k_466, sizeof(__pyx_k_466), 0, 1, 0},
+ {&__pyx_kp_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 0},
+ {&__pyx_kp_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 0},
+ {&__pyx_kp_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 0},
+ {&__pyx_kp_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 0},
+ {&__pyx_kp_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 0, 0},
+ {&__pyx_kp_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 0},
+ {&__pyx_kp_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 0},
+ {&__pyx_kp_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 0},
+ {&__pyx_kp_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 0},
+ {&__pyx_kp_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 0},
+ {&__pyx_kp_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 0},
+ {&__pyx_kp_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 0},
+ {&__pyx_kp_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 0, 0},
+ {&__pyx_kp_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 0, 0},
+ {&__pyx_kp_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 0, 0},
+ {&__pyx_kp_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 0, 0},
+ {&__pyx_kp_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 0, 0},
+ {&__pyx_kp_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 0, 0},
+ {&__pyx_kp_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 0, 0},
+ {&__pyx_kp_56, __pyx_k_56, sizeof(__pyx_k_56), 0, 0, 0},
+ {&__pyx_kp_80, __pyx_k_80, sizeof(__pyx_k_80), 0, 0, 0},
+ {&__pyx_kp_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 0, 0},
+ {&__pyx_kp_85, __pyx_k_85, sizeof(__pyx_k_85), 0, 0, 0},
+ {&__pyx_kp_86, __pyx_k_86, sizeof(__pyx_k_86), 0, 0, 0},
+ {&__pyx_kp_90, __pyx_k_90, sizeof(__pyx_k_90), 0, 0, 0},
+ {&__pyx_kp_91, __pyx_k_91, sizeof(__pyx_k_91), 0, 0, 0},
+ {&__pyx_kp_95, __pyx_k_95, sizeof(__pyx_k_95), 0, 0, 0},
+ {&__pyx_kp_96, __pyx_k_96, sizeof(__pyx_k_96), 0, 0, 0},
+ {&__pyx_kp_97, __pyx_k_97, sizeof(__pyx_k_97), 0, 0, 0},
+ {&__pyx_kp_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 0, 0},
+ {&__pyx_kp_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 0, 0},
+ {&__pyx_kp_103, __pyx_k_103, sizeof(__pyx_k_103), 0, 0, 0},
+ {&__pyx_kp_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 0, 0},
+ {&__pyx_kp_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 0, 0},
+ {&__pyx_kp_114, __pyx_k_114, sizeof(__pyx_k_114), 0, 0, 0},
+ {&__pyx_kp_120, __pyx_k_120, sizeof(__pyx_k_120), 0, 0, 0},
+ {&__pyx_kp_126, __pyx_k_126, sizeof(__pyx_k_126), 0, 0, 0},
+ {&__pyx_kp_130, __pyx_k_130, sizeof(__pyx_k_130), 0, 0, 0},
+ {&__pyx_kp_131, __pyx_k_131, sizeof(__pyx_k_131), 0, 0, 0},
+ {&__pyx_kp_135, __pyx_k_135, sizeof(__pyx_k_135), 0, 0, 0},
+ {&__pyx_kp_136, __pyx_k_136, sizeof(__pyx_k_136), 0, 0, 0},
+ {&__pyx_kp_140, __pyx_k_140, sizeof(__pyx_k_140), 0, 0, 0},
+ {&__pyx_kp_141, __pyx_k_141, sizeof(__pyx_k_141), 0, 0, 0},
+ {&__pyx_kp_145, __pyx_k_145, sizeof(__pyx_k_145), 0, 0, 0},
+ {&__pyx_kp_146, __pyx_k_146, sizeof(__pyx_k_146), 0, 0, 0},
+ {&__pyx_kp_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 0, 0},
+ {&__pyx_kp_148, __pyx_k_148, sizeof(__pyx_k_148), 0, 0, 0},
+ {&__pyx_kp_149, __pyx_k_149, sizeof(__pyx_k_149), 0, 0, 0},
+ {&__pyx_kp_150, __pyx_k_150, sizeof(__pyx_k_150), 0, 0, 0},
+ {&__pyx_kp_151, __pyx_k_151, sizeof(__pyx_k_151), 0, 0, 0},
+ {&__pyx_kp_152, __pyx_k_152, sizeof(__pyx_k_152), 0, 0, 0},
+ {&__pyx_kp_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 0, 0},
+ {&__pyx_kp_154, __pyx_k_154, sizeof(__pyx_k_154), 0, 0, 0},
+ {&__pyx_kp_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 0, 0},
+ {&__pyx_kp_156, __pyx_k_156, sizeof(__pyx_k_156), 0, 0, 0},
+ {&__pyx_kp_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 0, 0},
+ {&__pyx_kp_158, __pyx_k_158, sizeof(__pyx_k_158), 0, 0, 0},
+ {&__pyx_kp_159, __pyx_k_159, sizeof(__pyx_k_159), 0, 0, 0},
+ {&__pyx_kp_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 0, 0},
+ {&__pyx_kp_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 0, 0},
+ {&__pyx_kp_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 0, 0},
+ {&__pyx_kp_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 0, 0},
+ {&__pyx_kp_167, __pyx_k_167, sizeof(__pyx_k_167), 0, 0, 0},
+ {&__pyx_kp_168, __pyx_k_168, sizeof(__pyx_k_168), 0, 0, 0},
+ {&__pyx_kp_172, __pyx_k_172, sizeof(__pyx_k_172), 0, 0, 0},
+ {&__pyx_kp_173, __pyx_k_173, sizeof(__pyx_k_173), 0, 0, 0},
+ {&__pyx_kp_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 0, 0},
+ {&__pyx_kp_178, __pyx_k_178, sizeof(__pyx_k_178), 0, 0, 0},
+ {&__pyx_kp_179, __pyx_k_179, sizeof(__pyx_k_179), 0, 0, 0},
+ {&__pyx_kp_180, __pyx_k_180, sizeof(__pyx_k_180), 0, 0, 0},
+ {&__pyx_kp_184, __pyx_k_184, sizeof(__pyx_k_184), 0, 0, 0},
+ {&__pyx_kp_187, __pyx_k_187, sizeof(__pyx_k_187), 0, 0, 0},
+ {&__pyx_kp_188, __pyx_k_188, sizeof(__pyx_k_188), 0, 0, 0},
+ {&__pyx_kp_192, __pyx_k_192, sizeof(__pyx_k_192), 0, 0, 0},
+ {&__pyx_kp_193, __pyx_k_193, sizeof(__pyx_k_193), 0, 0, 0},
+ {&__pyx_kp_194, __pyx_k_194, sizeof(__pyx_k_194), 0, 0, 0},
+ {&__pyx_kp_198, __pyx_k_198, sizeof(__pyx_k_198), 0, 0, 0},
+ {&__pyx_kp_199, __pyx_k_199, sizeof(__pyx_k_199), 0, 0, 0},
+ {&__pyx_kp_200, __pyx_k_200, sizeof(__pyx_k_200), 0, 0, 0},
+ {&__pyx_kp_204, __pyx_k_204, sizeof(__pyx_k_204), 0, 0, 0},
+ {&__pyx_kp_205, __pyx_k_205, sizeof(__pyx_k_205), 0, 0, 0},
+ {&__pyx_kp_206, __pyx_k_206, sizeof(__pyx_k_206), 0, 0, 0},
+ {&__pyx_kp_210, __pyx_k_210, sizeof(__pyx_k_210), 0, 0, 0},
+ {&__pyx_kp_211, __pyx_k_211, sizeof(__pyx_k_211), 0, 0, 0},
+ {&__pyx_kp_212, __pyx_k_212, sizeof(__pyx_k_212), 0, 0, 0},
+ {&__pyx_kp_216, __pyx_k_216, sizeof(__pyx_k_216), 0, 0, 0},
+ {&__pyx_kp_217, __pyx_k_217, sizeof(__pyx_k_217), 0, 0, 0},
+ {&__pyx_kp_218, __pyx_k_218, sizeof(__pyx_k_218), 0, 0, 0},
+ {&__pyx_kp_224, __pyx_k_224, sizeof(__pyx_k_224), 0, 0, 0},
+ {&__pyx_kp_228, __pyx_k_228, sizeof(__pyx_k_228), 0, 0, 0},
+ {&__pyx_kp_229, __pyx_k_229, sizeof(__pyx_k_229), 0, 0, 0},
+ {&__pyx_kp_230, __pyx_k_230, sizeof(__pyx_k_230), 0, 0, 0},
+ {&__pyx_kp_234, __pyx_k_234, sizeof(__pyx_k_234), 0, 0, 0},
+ {&__pyx_kp_235, __pyx_k_235, sizeof(__pyx_k_235), 0, 0, 0},
+ {&__pyx_kp_236, __pyx_k_236, sizeof(__pyx_k_236), 0, 0, 0},
+ {&__pyx_kp_240, __pyx_k_240, sizeof(__pyx_k_240), 0, 0, 0},
+ {&__pyx_kp_241, __pyx_k_241, sizeof(__pyx_k_241), 0, 0, 0},
+ {&__pyx_kp_242, __pyx_k_242, sizeof(__pyx_k_242), 0, 0, 0},
+ {&__pyx_kp_246, __pyx_k_246, sizeof(__pyx_k_246), 0, 0, 0},
+ {&__pyx_kp_247, __pyx_k_247, sizeof(__pyx_k_247), 0, 0, 0},
+ {&__pyx_kp_248, __pyx_k_248, sizeof(__pyx_k_248), 0, 0, 0},
+ {&__pyx_kp_252, __pyx_k_252, sizeof(__pyx_k_252), 0, 0, 0},
+ {&__pyx_kp_253, __pyx_k_253, sizeof(__pyx_k_253), 0, 0, 0},
+ {&__pyx_kp_254, __pyx_k_254, sizeof(__pyx_k_254), 0, 0, 0},
+ {&__pyx_kp_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 0, 0},
+ {&__pyx_kp_259, __pyx_k_259, sizeof(__pyx_k_259), 0, 0, 0},
+ {&__pyx_kp_260, __pyx_k_260, sizeof(__pyx_k_260), 0, 0, 0},
+ {&__pyx_kp_264, __pyx_k_264, sizeof(__pyx_k_264), 0, 0, 0},
+ {&__pyx_kp_265, __pyx_k_265, sizeof(__pyx_k_265), 0, 0, 0},
+ {&__pyx_kp_266, __pyx_k_266, sizeof(__pyx_k_266), 0, 0, 0},
+ {&__pyx_kp_270, __pyx_k_270, sizeof(__pyx_k_270), 0, 0, 0},
+ {&__pyx_kp_271, __pyx_k_271, sizeof(__pyx_k_271), 0, 0, 0},
+ {&__pyx_kp_272, __pyx_k_272, sizeof(__pyx_k_272), 0, 0, 0},
+ {&__pyx_kp_276, __pyx_k_276, sizeof(__pyx_k_276), 0, 0, 0},
+ {&__pyx_kp_277, __pyx_k_277, sizeof(__pyx_k_277), 0, 0, 0},
+ {&__pyx_kp_278, __pyx_k_278, sizeof(__pyx_k_278), 0, 0, 0},
+ {&__pyx_kp_282, __pyx_k_282, sizeof(__pyx_k_282), 0, 0, 0},
+ {&__pyx_kp_283, __pyx_k_283, sizeof(__pyx_k_283), 0, 0, 0},
+ {&__pyx_kp_284, __pyx_k_284, sizeof(__pyx_k_284), 0, 0, 0},
+ {&__pyx_kp_288, __pyx_k_288, sizeof(__pyx_k_288), 0, 0, 0},
+ {&__pyx_kp_289, __pyx_k_289, sizeof(__pyx_k_289), 0, 0, 0},
+ {&__pyx_kp_290, __pyx_k_290, sizeof(__pyx_k_290), 0, 0, 0},
+ {&__pyx_kp_294, __pyx_k_294, sizeof(__pyx_k_294), 0, 0, 0},
+ {&__pyx_kp_295, __pyx_k_295, sizeof(__pyx_k_295), 0, 0, 0},
+ {&__pyx_kp_296, __pyx_k_296, sizeof(__pyx_k_296), 0, 0, 0},
+ {&__pyx_kp_300, __pyx_k_300, sizeof(__pyx_k_300), 0, 0, 0},
+ {&__pyx_kp_301, __pyx_k_301, sizeof(__pyx_k_301), 0, 0, 0},
+ {&__pyx_kp_302, __pyx_k_302, sizeof(__pyx_k_302), 0, 0, 0},
+ {&__pyx_kp_306, __pyx_k_306, sizeof(__pyx_k_306), 0, 0, 0},
+ {&__pyx_kp_307, __pyx_k_307, sizeof(__pyx_k_307), 0, 0, 0},
+ {&__pyx_kp_308, __pyx_k_308, sizeof(__pyx_k_308), 0, 0, 0},
+ {&__pyx_kp_312, __pyx_k_312, sizeof(__pyx_k_312), 0, 0, 0},
+ {&__pyx_kp_313, __pyx_k_313, sizeof(__pyx_k_313), 0, 0, 0},
+ {&__pyx_kp_314, __pyx_k_314, sizeof(__pyx_k_314), 0, 0, 0},
+ {&__pyx_kp_318, __pyx_k_318, sizeof(__pyx_k_318), 0, 0, 0},
+ {&__pyx_kp_319, __pyx_k_319, sizeof(__pyx_k_319), 0, 0, 0},
+ {&__pyx_kp_320, __pyx_k_320, sizeof(__pyx_k_320), 0, 0, 0},
+ {&__pyx_kp_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 0, 0},
+ {&__pyx_kp_325, __pyx_k_325, sizeof(__pyx_k_325), 0, 0, 0},
+ {&__pyx_kp_326, __pyx_k_326, sizeof(__pyx_k_326), 0, 0, 0},
+ {&__pyx_kp_330, __pyx_k_330, sizeof(__pyx_k_330), 0, 0, 0},
+ {&__pyx_kp_331, __pyx_k_331, sizeof(__pyx_k_331), 0, 0, 0},
+ {&__pyx_kp_332, __pyx_k_332, sizeof(__pyx_k_332), 0, 0, 0},
+ {&__pyx_kp_336, __pyx_k_336, sizeof(__pyx_k_336), 0, 0, 0},
+ {&__pyx_kp_337, __pyx_k_337, sizeof(__pyx_k_337), 0, 0, 0},
+ {&__pyx_kp_338, __pyx_k_338, sizeof(__pyx_k_338), 0, 0, 0},
+ {&__pyx_kp_342, __pyx_k_342, sizeof(__pyx_k_342), 0, 0, 0},
+ {&__pyx_kp_343, __pyx_k_343, sizeof(__pyx_k_343), 0, 0, 0},
+ {&__pyx_kp_344, __pyx_k_344, sizeof(__pyx_k_344), 0, 0, 0},
+ {&__pyx_kp_348, __pyx_k_348, sizeof(__pyx_k_348), 0, 0, 0},
+ {&__pyx_kp_349, __pyx_k_349, sizeof(__pyx_k_349), 0, 0, 0},
+ {&__pyx_kp_350, __pyx_k_350, sizeof(__pyx_k_350), 0, 0, 0},
+ {&__pyx_kp_351, __pyx_k_351, sizeof(__pyx_k_351), 0, 0, 0},
+ {&__pyx_kp_352, __pyx_k_352, sizeof(__pyx_k_352), 0, 0, 0},
+ {&__pyx_kp_353, __pyx_k_353, sizeof(__pyx_k_353), 0, 0, 0},
+ {&__pyx_kp_354, __pyx_k_354, sizeof(__pyx_k_354), 0, 0, 0},
+ {&__pyx_kp_355, __pyx_k_355, sizeof(__pyx_k_355), 0, 0, 0},
+ {&__pyx_kp_356, __pyx_k_356, sizeof(__pyx_k_356), 0, 0, 0},
+ {&__pyx_kp_357, __pyx_k_357, sizeof(__pyx_k_357), 0, 0, 0},
+ {&__pyx_kp_358, __pyx_k_358, sizeof(__pyx_k_358), 0, 0, 0},
+ {&__pyx_kp_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 0, 0},
+ {&__pyx_kp_360, __pyx_k_360, sizeof(__pyx_k_360), 0, 0, 0},
+ {&__pyx_kp_361, __pyx_k_361, sizeof(__pyx_k_361), 0, 0, 0},
+ {&__pyx_kp_362, __pyx_k_362, sizeof(__pyx_k_362), 0, 0, 0},
+ {&__pyx_kp_363, __pyx_k_363, sizeof(__pyx_k_363), 0, 0, 0},
+ {&__pyx_kp_364, __pyx_k_364, sizeof(__pyx_k_364), 0, 0, 0},
+ {&__pyx_kp_365, __pyx_k_365, sizeof(__pyx_k_365), 0, 0, 0},
+ {&__pyx_kp_366, __pyx_k_366, sizeof(__pyx_k_366), 0, 0, 0},
+ {&__pyx_kp_367, __pyx_k_367, sizeof(__pyx_k_367), 0, 0, 0},
+ {&__pyx_kp_368, __pyx_k_368, sizeof(__pyx_k_368), 0, 0, 0},
+ {&__pyx_kp_369, __pyx_k_369, sizeof(__pyx_k_369), 0, 0, 0},
+ {&__pyx_kp_370, __pyx_k_370, sizeof(__pyx_k_370), 0, 0, 0},
+ {&__pyx_kp_371, __pyx_k_371, sizeof(__pyx_k_371), 0, 0, 0},
+ {&__pyx_kp_372, __pyx_k_372, sizeof(__pyx_k_372), 0, 0, 0},
+ {&__pyx_kp_373, __pyx_k_373, sizeof(__pyx_k_373), 0, 0, 0},
+ {&__pyx_kp_374, __pyx_k_374, sizeof(__pyx_k_374), 0, 0, 0},
+ {&__pyx_kp_375, __pyx_k_375, sizeof(__pyx_k_375), 0, 0, 0},
+ {&__pyx_kp_376, __pyx_k_376, sizeof(__pyx_k_376), 0, 0, 0},
+ {&__pyx_kp_377, __pyx_k_377, sizeof(__pyx_k_377), 0, 0, 0},
+ {&__pyx_kp_378, __pyx_k_378, sizeof(__pyx_k_378), 0, 0, 0},
+ {&__pyx_kp_379, __pyx_k_379, sizeof(__pyx_k_379), 0, 0, 0},
+ {&__pyx_kp_380, __pyx_k_380, sizeof(__pyx_k_380), 0, 0, 0},
+ {&__pyx_kp_381, __pyx_k_381, sizeof(__pyx_k_381), 0, 0, 0},
+ {&__pyx_kp_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 0, 0},
+ {&__pyx_kp_414, __pyx_k_414, sizeof(__pyx_k_414), 0, 0, 0},
+ {&__pyx_kp_416, __pyx_k_416, sizeof(__pyx_k_416), 0, 0, 0},
+ {&__pyx_kp_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 0, 0},
+ {&__pyx_kp_420, __pyx_k_420, sizeof(__pyx_k_420), 0, 0, 0},
+ {&__pyx_kp_422, __pyx_k_422, sizeof(__pyx_k_422), 0, 0, 0},
+ {&__pyx_kp_424, __pyx_k_424, sizeof(__pyx_k_424), 0, 0, 0},
+ {&__pyx_kp_457, __pyx_k_457, sizeof(__pyx_k_457), 0, 0, 0},
+ {0, 0, 0, 0, 0, 0}
+};
+static int __Pyx_InitCachedBuiltins(void) {
+ __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_kp_property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ return 0;
+ __pyx_L1_error:;
+ return -1;
+}
+
+static int __Pyx_InitGlobals(void) {
+ __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_11 = PyInt_FromLong(11); if (unlikely(!__pyx_int_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_13 = PyInt_FromLong(13); if (unlikely(!__pyx_int_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_14 = PyInt_FromLong(14); if (unlikely(!__pyx_int_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ return 0;
+ __pyx_L1_error:;
+ return -1;
+}
+
+#if PY_MAJOR_VERSION < 3
+PyMODINIT_FUNC initpurple(void); /*proto*/
+PyMODINIT_FUNC initpurple(void)
+#else
+PyMODINIT_FUNC PyInit_purple(void); /*proto*/
+PyMODINIT_FUNC PyInit_purple(void)
+#endif
+{
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ /*--- Library function declarations ---*/
+ __pyx_init_filenames();
+ /*--- Initialize various global constants etc. ---*/
+ if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ /*--- Module creation code ---*/
+ #if PY_MAJOR_VERSION < 3
+ __pyx_m = Py_InitModule4("purple", __pyx_methods, 0, 0, PYTHON_API_VERSION);
+ #else
+ __pyx_m = PyModule_Create(&__pyx_moduledef);
+ #endif
+ if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ #if PY_MAJOR_VERSION < 3
+ Py_INCREF(__pyx_m);
+ #endif
+ __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME);
+ if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ /*--- Builtin init code ---*/
+ if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_skip_dispatch = 0;
+ /*--- Global init code ---*/
+ /*--- Function export code ---*/
+ /*--- Type init code ---*/
+ __pyx_vtabptr_6purple_Purple = &__pyx_vtable_6purple_Purple;
+ *(void(**)(void))&__pyx_vtable_6purple_Purple.__core_ui_ops_ui_prefs_init = (void(*)(void))__pyx_f_6purple_6Purple___core_ui_ops_ui_prefs_init;
+ *(void(**)(void))&__pyx_vtable_6purple_Purple.__core_ui_ops_debug_init = (void(*)(void))__pyx_f_6purple_6Purple___core_ui_ops_debug_init;
+ *(void(**)(void))&__pyx_vtable_6purple_Purple.__core_ui_ops_ui_init = (void(*)(void))__pyx_f_6purple_6Purple___core_ui_ops_ui_init;
+ *(void(**)(void))&__pyx_vtable_6purple_Purple.__core_ui_ops_quit = (void(*)(void))__pyx_f_6purple_6Purple___core_ui_ops_quit;
+ *(void(**)(void))&__pyx_vtable_6purple_Purple.__core_ui_ops_get_ui_info = (void(*)(void))__pyx_f_6purple_6Purple___core_ui_ops_get_ui_info;
+ if (PyType_Ready(&__pyx_type_6purple_Purple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_6purple_Purple.tp_dict, __pyx_vtabptr_6purple_Purple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "Purple", (PyObject *)&__pyx_type_6purple_Purple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_Purple = &__pyx_type_6purple_Purple;
+ __pyx_vtabptr_6purple_Protocol = &__pyx_vtable_6purple_Protocol;
+ *(void(**)(void))&__pyx_vtable_6purple_Protocol._get_structure = (void(*)(void))__pyx_f_6purple_8Protocol__get_structure;
+ if (PyType_Ready(&__pyx_type_6purple_Protocol) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_6purple_Protocol.tp_dict, __pyx_vtabptr_6purple_Protocol) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "Protocol", (PyObject *)&__pyx_type_6purple_Protocol) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_Protocol = &__pyx_type_6purple_Protocol;
+ if (PyType_Ready(&__pyx_type_6purple_ProxyInfoType) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "ProxyInfoType", (PyObject *)&__pyx_type_6purple_ProxyInfoType) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_ProxyInfoType = &__pyx_type_6purple_ProxyInfoType;
+ if (PyType_Ready(&__pyx_type_6purple_ProxyInfo) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "ProxyInfo", (PyObject *)&__pyx_type_6purple_ProxyInfo) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_ProxyInfo = &__pyx_type_6purple_ProxyInfo;
+ __pyx_vtabptr_6purple_Account = &__pyx_vtable_6purple_Account;
+ *(void(**)(void))&__pyx_vtable_6purple_Account._get_structure = (void(*)(void))__pyx_f_6purple_7Account__get_structure;
+ if (PyType_Ready(&__pyx_type_6purple_Account) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_6purple_Account.tp_dict, __pyx_vtabptr_6purple_Account) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "Account", (PyObject *)&__pyx_type_6purple_Account) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_Account = &__pyx_type_6purple_Account;
+ __pyx_vtabptr_6purple_Buddy = &__pyx_vtable_6purple_Buddy;
+ *(void(**)(void))&__pyx_vtable_6purple_Buddy._get_structure = (void(*)(void))__pyx_f_6purple_5Buddy__get_structure;
+ if (PyType_Ready(&__pyx_type_6purple_Buddy) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_6purple_Buddy.tp_dict, __pyx_vtabptr_6purple_Buddy) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "Buddy", (PyObject *)&__pyx_type_6purple_Buddy) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_Buddy = &__pyx_type_6purple_Buddy;
+ __pyx_vtabptr_6purple_Conversation = &__pyx_vtable_6purple_Conversation;
+ *(void(**)(void))&__pyx_vtable_6purple_Conversation._get_structure = (void(*)(void))__pyx_f_6purple_12Conversation__get_structure;
+ if (PyType_Ready(&__pyx_type_6purple_Conversation) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_6purple_Conversation.tp_dict, __pyx_vtabptr_6purple_Conversation) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttrString(__pyx_m, "Conversation", (PyObject *)&__pyx_type_6purple_Conversation) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_ptype_6purple_Conversation = &__pyx_type_6purple_Conversation;
+ /*--- Type import code ---*/
+ /*--- Function import code ---*/
+ /*--- Execution code ---*/
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":25
+ * glib.guint glib_input_add(glib.gint fd, eventloop.PurpleInputCondition condition, eventloop.PurpleInputFunction function, glib.gpointer data)
+ *
+ * import ecore # <<<<<<<<<<<<<<
+ *
+ * cdef glib.GHashTable *c_ui_info
+ */
+ __pyx_1 = __Pyx_Import(__pyx_kp_ecore, 0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_ecore, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":29
+ * cdef glib.GHashTable *c_ui_info
+ *
+ * c_ui_info = NULL # <<<<<<<<<<<<<<
+ *
+ * cdef char *c_ui_name
+ */
+ __pyx_v_6purple_c_ui_info = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":25
+ * ctypedef char const_char "const char"
+ *
+ * account_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_authorize_cb = NULL
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_account_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":27
+ * account_cbs = {}
+ *
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_authorize_cb = NULL # <<<<<<<<<<<<<<
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_deny_cb = NULL
+ * cdef void *c_request_authorize_user_data = NULL
+ */
+ __pyx_v_6purple_c_request_authorize_authorize_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":28
+ *
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_authorize_cb = NULL
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_deny_cb = NULL # <<<<<<<<<<<<<<
+ * cdef void *c_request_authorize_user_data = NULL
+ *
+ */
+ __pyx_v_6purple_c_request_authorize_deny_cb = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account_cbs.pxd":29
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_authorize_cb = NULL
+ * cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_deny_cb = NULL
+ * cdef void *c_request_authorize_user_data = NULL # <<<<<<<<<<<<<<
+ *
+ * def call_authorize_cb():
+ */
+ __pyx_v_6purple_c_request_authorize_user_data = NULL;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/blist_cbs.pxd":25
+ * ctypedef char const_char "const char"
+ *
+ * blist_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_blist_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/connection_cbs.pxd":22
+ * cimport purple
+ *
+ * cdef extern from *: # <<<<<<<<<<<<<<
+ * ctypedef char const_char "const char"
+ *
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_connection_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation_cbs.pxd":27
+ * ctypedef long int time_t
+ *
+ * conversation_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef void create_conversation(conversation.PurpleConversation *conv):
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_conversation_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/notify_cbs.pxd":26
+ * ctypedef int size_t
+ *
+ * notify_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef void *notify_message(notify.PurpleNotifyMsgType type, \
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_notify_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/request_cbs.pxd":27
+ * ctypedef void* va_list
+ *
+ * request_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef void *request_input(const_char *title, const_char *primary, \
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_request_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/signal_cbs.pxd":22
+ * cimport purple
+ *
+ * signal_cbs = {} # <<<<<<<<<<<<<<
+ *
+ * cdef extern from *:
+ */
+ __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_kp_signal_cbs, ((PyObject *)__pyx_1)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/purple.pyx":96
+ * global c_ui_name
+ * return str(c_ui_name)
+ * ui_name = property(__get_ui_name) # <<<<<<<<<<<<<<
+ *
+ * cdef void __core_ui_ops_ui_prefs_init(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Purple, __pyx_kp___get_ui_name); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Purple->tp_dict, __pyx_kp_ui_name, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Purple);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":43
+ * def __get_exists(self):
+ * return self.__exists
+ * exists = property(__get_exists) # <<<<<<<<<<<<<<
+ *
+ * def __get_id(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Protocol, __pyx_kp___get_exists); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Protocol->tp_dict, __pyx_kp_exists, __pyx_2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Protocol);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":47
+ * def __get_id(self):
+ * return self.__id
+ * id = property(__get_id) # <<<<<<<<<<<<<<
+ *
+ * def __get_name(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Protocol, __pyx_kp___get_id); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Protocol->tp_dict, __pyx_kp_id, __pyx_1) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Protocol);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":58
+ * return None
+ * return None
+ * name = property(__get_name) # <<<<<<<<<<<<<<
+ *
+ * def __get_options_labels(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Protocol, __pyx_kp___get_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Protocol->tp_dict, __pyx_kp_name, __pyx_2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Protocol);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":92
+ *
+ * return po
+ * options_labels = property(__get_options_labels) # <<<<<<<<<<<<<<
+ *
+ * def __get_options_values(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Protocol, __pyx_kp_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Protocol->tp_dict, __pyx_kp_options_labels, __pyx_1) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Protocol);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/protocol.pyx":148
+ *
+ * return po
+ * options_values = property(__get_options_values) # <<<<<<<<<<<<<<
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Protocol, __pyx_kp_4); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Protocol->tp_dict, __pyx_kp_options_values, __pyx_2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Protocol);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":31
+ * self.c_type = proxy.PURPLE_PROXY_NONE
+ * return self
+ * NONE = property(get_NONE) # <<<<<<<<<<<<<<
+ *
+ * def get_USE_GLOBAL(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_ProxyInfoType, __pyx_kp_get_NONE); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_ProxyInfoType->tp_dict, __pyx_kp_NONE, __pyx_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_ProxyInfoType);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":36
+ * self.c_type = proxy.PURPLE_PROXY_USE_GLOBAL
+ * return self
+ * USE_GLOBAL = property(get_USE_GLOBAL) # <<<<<<<<<<<<<<
+ *
+ * def get_HTTP(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_ProxyInfoType, __pyx_kp_get_USE_GLOBAL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_ProxyInfoType->tp_dict, __pyx_kp_USE_GLOBAL, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_ProxyInfoType);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":41
+ * self.c_type = proxy.PURPLE_PROXY_HTTP
+ * return self
+ * HTTP = property(get_HTTP) # <<<<<<<<<<<<<<
+ *
+ * def get_SOCKS4(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_ProxyInfoType, __pyx_kp_get_HTTP); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_ProxyInfoType->tp_dict, __pyx_kp_HTTP, __pyx_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_ProxyInfoType);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/proxy.pyx":54
+ * self.c_type = proxy.PURPLE_PROXY_USE_ENVVAR
+ * return self
+ * USE_ENVVAR = property(get_USE_ENVVAR) # <<<<<<<<<<<<<<
+ *
+ * cdef class ProxyInfo:
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_ProxyInfoType, __pyx_kp_get_USE_ENVVAR); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_ProxyInfoType->tp_dict, __pyx_kp_USE_ENVVAR, __pyx_2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_ProxyInfoType);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":49
+ * self.__protocol.id)
+ *
+ * def __is_connected(self): # <<<<<<<<<<<<<<
+ * if self.__exists:
+ * return account.purple_account_is_connected(self._get_structure())
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___is_connected); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_is_connected, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":61
+ * else:
+ * return None
+ * is_connecting = property(__is_connecting) # <<<<<<<<<<<<<<
+ *
+ * def __is_disconnected(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___is_connecting); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_is_connecting, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":69
+ * else:
+ * return None
+ * is_disconnected = property(__is_disconnected) # <<<<<<<<<<<<<<
+ *
+ * def __get_core(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___is_disconnected); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_is_disconnected, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":73
+ * def __get_core(self):
+ * return self.__core
+ * core = property(__get_core) # <<<<<<<<<<<<<<
+ *
+ * def __get_exists(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_core); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_core, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":77
+ * def __get_exists(self):
+ * return self.__exists
+ * exists = property(__get_exists) # <<<<<<<<<<<<<<
+ *
+ * def __get_username(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_exists); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_exists, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":90
+ * else:
+ * return self.__username
+ * username = property(__get_username) # <<<<<<<<<<<<<<
+ *
+ * def __get_protocol(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_username); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_username, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":94
+ * def __get_protocol(self):
+ * return self.__protocol
+ * protocol = property(__get_protocol) # <<<<<<<<<<<<<<
+ *
+ * def _get_protocol_options(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_protocol); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_protocol, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":170
+ *
+ * return po
+ * protocol_options = property(_get_protocol_options) # <<<<<<<<<<<<<<
+ *
+ * def __get_password(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp_7); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_protocol_options, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":183
+ * else:
+ * return None
+ * password = property(__get_password) # <<<<<<<<<<<<<<
+ *
+ * def __get_alias(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_password); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_password, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":195
+ * else:
+ * return None
+ * alias = property(__get_alias) # <<<<<<<<<<<<<<
+ *
+ * def __get_user_info(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_alias, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":207
+ * else:
+ * return None
+ * user_info = property(__get_user_info) # <<<<<<<<<<<<<<
+ *
+ * def __get_remember_password(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_user_info); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_user_info, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":215
+ * else:
+ * return None
+ * remember_password = property(__get_remember_password) # <<<<<<<<<<<<<<
+ *
+ * def __get_enabled(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp_8); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_remember_password, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":223
+ * else:
+ * return None
+ * enabled = property(__get_enabled) # <<<<<<<<<<<<<<
+ *
+ * def __get_status_types(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_enabled); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_enabled, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":244
+ * return None
+ *
+ * status_types = property(__get_status_types) # <<<<<<<<<<<<<<
+ *
+ * def __get_active_status(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_status_types); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_status_types, __pyx_2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/account.pyx":267
+ * else:
+ * return None
+ * active_status = property(__get_active_status) # <<<<<<<<<<<<<<
+ *
+ * def set_username(self, username):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Account, __pyx_kp___get_active_status); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Account->tp_dict, __pyx_kp_active_status, __pyx_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Account);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":49
+ * def __get_exists(self):
+ * return self.__exists
+ * exists = property(__get_exists) # <<<<<<<<<<<<<<
+ *
+ * def __get_name(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_exists); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_exists, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":56
+ * else:
+ * return self.__name
+ * name = property(__get_name) # <<<<<<<<<<<<<<
+ *
+ * def __get_account(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_name); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_name, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":63
+ * else:
+ * return None
+ * account = property(__get_account) # <<<<<<<<<<<<<<
+ *
+ * def __get_alias(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_account); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_account, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":73
+ * else:
+ * return None
+ * alias = property(__get_alias) # <<<<<<<<<<<<<<
+ *
+ * def __get_group(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_alias); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_alias, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":82
+ * else:
+ * return None
+ * group = property(__get_group) # <<<<<<<<<<<<<<
+ *
+ * def __get_server_alias(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_group); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_group, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":92
+ * else:
+ * return None
+ * server_alias = property(__get_server_alias) # <<<<<<<<<<<<<<
+ *
+ * def __get_contact_alias(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_server_alias); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_server_alias, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":102
+ * else:
+ * return None
+ * contact_alias = property(__get_contact_alias) # <<<<<<<<<<<<<<
+ *
+ * def __get_local_alias(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_contact_alias); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_contact_alias, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":112
+ * else:
+ * return None
+ * local_alias = property(__get_local_alias) # <<<<<<<<<<<<<<
+ *
+ * def __get_available(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_local_alias); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_local_alias, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":120
+ * else:
+ * return None
+ * available = property(__get_available) # <<<<<<<<<<<<<<
+ *
+ * def __get_online(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_available); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_available, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":128
+ * else:
+ * return None
+ * online = property(__get_online) # <<<<<<<<<<<<<<
+ *
+ * def __get_idle(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_online); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_online, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":136
+ * else:
+ * return None
+ * idle = property(__get_idle) # <<<<<<<<<<<<<<
+ *
+ * def __get_active_status(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_idle); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_idle, __pyx_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/buddy.pyx":160
+ * else:
+ * return None
+ * active_status = property(__get_active_status) # <<<<<<<<<<<<<<
+ *
+ * def set_alias(self, alias):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Buddy, __pyx_kp___get_active_status); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Buddy->tp_dict, __pyx_kp_active_status, __pyx_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Buddy);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":57
+ * def __get_exists(self):
+ * return self.__exists
+ * exists = property(__get_exists) # <<<<<<<<<<<<<<
+ *
+ * def __get_account(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Conversation, __pyx_kp___get_exists); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Conversation->tp_dict, __pyx_kp_exists, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Conversation);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":64
+ * else:
+ * return None
+ * account = property(__get_account) # <<<<<<<<<<<<<<
+ *
+ * def __get_name(self):
+ */
+ __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Conversation, __pyx_kp___get_account); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Conversation->tp_dict, __pyx_kp_account, __pyx_1) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Conversation);
+
+ /* "/scratchbox/users/bruno/home/bruno/carman/python-purple/conversation.pyx":72
+ * else:
+ * return None
+ * name = property(__get_name) # <<<<<<<<<<<<<<
+ *
+ * def new(self):
+ */
+ __pyx_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6purple_Conversation, __pyx_kp___get_name); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_6purple_Conversation->tp_dict, __pyx_kp_name, __pyx_2) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyType_Modified(__pyx_ptype_6purple_Conversation);
+
+ /* "libpurple/idle.pxd":1
+ * # # <<<<<<<<<<<<<<
+ * # Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
+ * #
+ */
+ #if PY_MAJOR_VERSION < 3
+ return;
+ #else
+ return __pyx_m;
+ #endif
+ __pyx_L1_error:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ __Pyx_AddTraceback("purple");
+ #if PY_MAJOR_VERSION >= 3
+ return NULL;
+ #endif
+}
+
+static const char *__pyx_filenames[] = {
+ "purple.pyx",
+ "account_cbs.pxd",
+ "blist_cbs.pxd",
+ "connection_cbs.pxd",
+ "conversation_cbs.pxd",
+ "notify_cbs.pxd",
+ "request_cbs.pxd",
+ "signal_cbs.pxd",
+ "util.pxd",
+ "protocol.pyx",
+ "proxy.pyx",
+ "account.pyx",
+ "buddy.pyx",
+ "conversation.pyx",
+};
+
+/* Runtime support code */
+
+static void __pyx_init_filenames(void) {
+ __pyx_f = __pyx_filenames;
+}
+
+
+static void __Pyx_RaiseDoubleKeywordsError(
+ const char* func_name,
+ PyObject* kw_name)
+{
+ PyErr_Format(PyExc_TypeError,
+ #if PY_MAJOR_VERSION >= 3
+ "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
+ #else
+ "%s() got multiple values for keyword argument '%s'", func_name,
+ PyString_AS_STRING(kw_name));
+ #endif
+}
+
+static void __Pyx_RaiseArgtupleInvalid(
+ const char* func_name,
+ int exact,
+ Py_ssize_t num_min,
+ Py_ssize_t num_max,
+ Py_ssize_t num_found)
+{
+ Py_ssize_t num_expected;
+ const char *number, *more_or_less;
+
+ if (num_found < num_min) {
+ num_expected = num_min;
+ more_or_less = "at least";
+ } else {
+ num_expected = num_max;
+ more_or_less = "at most";
+ }
+ if (exact) {
+ more_or_less = "exactly";
+ }
+ number = (num_expected == 1) ? "" : "s";
+ PyErr_Format(PyExc_TypeError,
+ #if PY_VERSION_HEX < 0x02050000
+ "%s() takes %s %d positional argument%s (%d given)",
+ #else
+ "%s() takes %s %zd positional argument%s (%zd given)",
+ #endif
+ func_name, more_or_less, num_expected, number, num_found);
+}
+
+static int __Pyx_ParseOptionalKeywords(
+ PyObject *kwds,
+ PyObject **argnames[],
+ PyObject *kwds2,
+ PyObject *values[],
+ Py_ssize_t num_pos_args,
+ const char* function_name)
+{
+ PyObject *key = 0, *value = 0;
+ Py_ssize_t pos = 0;
+ PyObject*** name;
+ PyObject*** first_kw_arg = argnames + num_pos_args;
+
+ while (PyDict_Next(kwds, &pos, &key, &value)) {
+ #if PY_MAJOR_VERSION < 3
+ if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
+ #else
+ if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
+ #endif
+ goto invalid_keyword_type;
+ } else {
+ name = argnames;
+ while (*name && (**name != key)) name++;
+ if (*name) {
+ if (name < first_kw_arg) goto arg_passed_twice;
+ values[name-argnames] = value;
+ } else {
+ for (name = first_kw_arg; *name; name++) {
+ #if PY_MAJOR_VERSION >= 3
+ if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
+ PyUnicode_Compare(**name, key) == 0) break;
+ #else
+ if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
+ strcmp(PyString_AS_STRING(**name),
+ PyString_AS_STRING(key)) == 0) break;
+ #endif
+ }
+ if (*name) {
+ values[name-argnames] = value;
+ } else {
+ /* unexpected keyword found */
+ for (name=argnames; name != first_kw_arg; name++) {
+ if (**name == key) goto arg_passed_twice;
+ #if PY_MAJOR_VERSION >= 3
+ if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
+ PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
+ #else
+ if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
+ strcmp(PyString_AS_STRING(**name),
+ PyString_AS_STRING(key)) == 0) goto arg_passed_twice;
+ #endif
+ }
+ if (kwds2) {
+ if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
+ } else {
+ goto invalid_keyword;
+ }
+ }
+ }
+ }
+ }
+ return 0;
+arg_passed_twice:
+ __Pyx_RaiseDoubleKeywordsError(function_name, **name);
+ goto bad;
+invalid_keyword_type:
+ PyErr_Format(PyExc_TypeError,
+ "%s() keywords must be strings", function_name);
+ goto bad;
+invalid_keyword:
+ PyErr_Format(PyExc_TypeError,
+ #if PY_MAJOR_VERSION < 3
+ "%s() got an unexpected keyword argument '%s'",
+ function_name, PyString_AsString(key));
+ #else
+ "%s() got an unexpected keyword argument '%U'",
+ function_name, key);
+ #endif
+bad:
+ return -1;
+}
+
+static INLINE int __Pyx_CheckKeywordStrings(
+ PyObject *kwdict,
+ const char* function_name,
+ int kw_allowed)
+{
+ PyObject* key = 0;
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(kwdict, &pos, &key, 0)) {
+ #if PY_MAJOR_VERSION < 3
+ if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
+ #else
+ if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key)))
+ #endif
+ goto invalid_keyword_type;
+ }
+ if ((!kw_allowed) && unlikely(key))
+ goto invalid_keyword;
+ return 1;
+invalid_keyword_type:
+ PyErr_Format(PyExc_TypeError,
+ "%s() keywords must be strings", function_name);
+ return 0;
+invalid_keyword:
+ PyErr_Format(PyExc_TypeError,
+ #if PY_MAJOR_VERSION < 3
+ "%s() got an unexpected keyword argument '%s'",
+ function_name, PyString_AsString(key));
+ #else
+ "%s() got an unexpected keyword argument '%U'",
+ function_name, key);
+ #endif
+ return 0;
+}
+
+static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
+ const char *name, int exact)
+{
+ if (!type) {
+ PyErr_Format(PyExc_SystemError, "Missing type object");
+ return 0;
+ }
+ if (none_allowed && obj == Py_None) return 1;
+ else if (exact) {
+ if (Py_TYPE(obj) == type) return 1;
+ }
+ else {
+ if (PyObject_TypeCheck(obj, type)) return 1;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "Argument '%s' has incorrect type (expected %s, got %s)",
+ name, type->tp_name, Py_TYPE(obj)->tp_name);
+ return 0;
+}
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
+ PyObject *__import__ = 0;
+ PyObject *empty_list = 0;
+ PyObject *module = 0;
+ PyObject *global_dict = 0;
+ PyObject *empty_dict = 0;
+ PyObject *list;
+ __import__ = PyObject_GetAttrString(__pyx_b, "__import__");
+ if (!__import__)
+ goto bad;
+ if (from_list)
+ list = from_list;
+ else {
+ empty_list = PyList_New(0);
+ if (!empty_list)
+ goto bad;
+ list = empty_list;
+ }
+ global_dict = PyModule_GetDict(__pyx_m);
+ if (!global_dict)
+ goto bad;
+ empty_dict = PyDict_New();
+ if (!empty_dict)
+ goto bad;
+ module = PyObject_CallFunction(__import__, "OOOO",
+ name, global_dict, empty_dict, list);
+bad:
+ Py_XDECREF(empty_list);
+ Py_XDECREF(__import__);
+ Py_XDECREF(empty_dict);
+ return module;
+}
+
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
+ PyObject *result;
+ result = PyObject_GetAttr(dict, name);
+ if (!result)
+ PyErr_SetObject(PyExc_NameError, name);
+ return result;
+}
+
+static void __Pyx_WriteUnraisable(const char *name) {
+ PyObject *old_exc, *old_val, *old_tb;
+ PyObject *ctx;
+ __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
+ #if PY_MAJOR_VERSION < 3
+ ctx = PyString_FromString(name);
+ #else
+ ctx = PyUnicode_FromString(name);
+ #endif
+ __Pyx_ErrRestore(old_exc, old_val, old_tb);
+ if (!ctx) {
+ PyErr_WriteUnraisable(Py_None);
+ } else {
+ PyErr_WriteUnraisable(ctx);
+ Py_DECREF(ctx);
+ }
+}
+
+static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
+ PyObject *tmp_type, *tmp_value, *tmp_tb;
+ PyThreadState *tstate = PyThreadState_GET();
+
+ tmp_type = tstate->curexc_type;
+ tmp_value = tstate->curexc_value;
+ tmp_tb = tstate->curexc_traceback;
+ tstate->curexc_type = type;
+ tstate->curexc_value = value;
+ tstate->curexc_traceback = tb;
+ Py_XDECREF(tmp_type);
+ Py_XDECREF(tmp_value);
+ Py_XDECREF(tmp_tb);
+}
+
+static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
+ PyThreadState *tstate = PyThreadState_GET();
+ *type = tstate->curexc_type;
+ *value = tstate->curexc_value;
+ *tb = tstate->curexc_traceback;
+
+ tstate->curexc_type = 0;
+ tstate->curexc_value = 0;
+ tstate->curexc_traceback = 0;
+}
+
+
+static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
+ PyObject *pycobj = 0;
+ int result;
+
+ pycobj = PyCObject_FromVoidPtr(vtable, 0);
+ if (!pycobj)
+ goto bad;
+ if (PyDict_SetItemString(dict, "__pyx_vtable__", pycobj) < 0)
+ goto bad;
+ result = 0;
+ goto done;
+
+bad:
+ result = -1;
+done:
+ Py_XDECREF(pycobj);
+ return result;
+}
+
+#include "compile.h"
+#include "frameobject.h"
+#include "traceback.h"
+
+static void __Pyx_AddTraceback(const char *funcname) {
+ PyObject *py_srcfile = 0;
+ PyObject *py_funcname = 0;
+ PyObject *py_globals = 0;
+ PyObject *empty_string = 0;
+ PyCodeObject *py_code = 0;
+ PyFrameObject *py_frame = 0;
+
+ #if PY_MAJOR_VERSION < 3
+ py_srcfile = PyString_FromString(__pyx_filename);
+ #else
+ py_srcfile = PyUnicode_FromString(__pyx_filename);
+ #endif
+ if (!py_srcfile) goto bad;
+ if (__pyx_clineno) {
+ #if PY_MAJOR_VERSION < 3
+ py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
+ #else
+ py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
+ #endif
+ }
+ else {
+ #if PY_MAJOR_VERSION < 3
+ py_funcname = PyString_FromString(funcname);
+ #else
+ py_funcname = PyUnicode_FromString(funcname);
+ #endif
+ }
+ if (!py_funcname) goto bad;
+ py_globals = PyModule_GetDict(__pyx_m);
+ if (!py_globals) goto bad;
+ #if PY_MAJOR_VERSION < 3
+ empty_string = PyString_FromStringAndSize("", 0);
+ #else
+ empty_string = PyBytes_FromStringAndSize("", 0);
+ #endif
+ if (!empty_string) goto bad;
+ py_code = PyCode_New(
+ 0, /*int argcount,*/
+ #if PY_MAJOR_VERSION >= 3
+ 0, /*int kwonlyargcount,*/
+ #endif
+ 0, /*int nlocals,*/
+ 0, /*int stacksize,*/
+ 0, /*int flags,*/
+ empty_string, /*PyObject *code,*/
+ __pyx_empty_tuple, /*PyObject *consts,*/
+ __pyx_empty_tuple, /*PyObject *names,*/
+ __pyx_empty_tuple, /*PyObject *varnames,*/
+ __pyx_empty_tuple, /*PyObject *freevars,*/
+ __pyx_empty_tuple, /*PyObject *cellvars,*/
+ py_srcfile, /*PyObject *filename,*/
+ py_funcname, /*PyObject *name,*/
+ __pyx_lineno, /*int firstlineno,*/
+ empty_string /*PyObject *lnotab*/
+ );
+ if (!py_code) goto bad;
+ py_frame = PyFrame_New(
+ PyThreadState_GET(), /*PyThreadState *tstate,*/
+ py_code, /*PyCodeObject *code,*/
+ py_globals, /*PyObject *globals,*/
+ 0 /*PyObject *locals*/
+ );
+ if (!py_frame) goto bad;
+ py_frame->f_lineno = __pyx_lineno;
+ PyTraceBack_Here(py_frame);
+bad:
+ Py_XDECREF(py_srcfile);
+ Py_XDECREF(py_funcname);
+ Py_XDECREF(empty_string);
+ Py_XDECREF(py_code);
+ Py_XDECREF(py_frame);
+}
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
+ while (t->p) {
+ #if PY_MAJOR_VERSION < 3
+ if (t->is_unicode && (!t->is_identifier)) {
+ *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
+ } else if (t->intern) {
+ *t->p = PyString_InternFromString(t->s);
+ } else {
+ *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
+ }
+ #else /* Python 3+ has unicode identifiers */
+ if (t->is_identifier || (t->is_unicode && t->intern)) {
+ *t->p = PyUnicode_InternFromString(t->s);
+ } else if (t->is_unicode) {
+ *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
+ } else {
+ *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
+ }
+ #endif
+ if (!*t->p)
+ return -1;
+ ++t;
+ }
+ return 0;
+}
+
+/* Type Conversion Functions */
+
+static INLINE Py_ssize_t __pyx_PyIndex_AsSsize_t(PyObject* b) {
+ Py_ssize_t ival;
+ PyObject* x = PyNumber_Index(b);
+ if (!x) return -1;
+ ival = PyInt_AsSsize_t(x);
+ Py_DECREF(x);
+ return ival;
+}
+
+static INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
+ if (x == Py_True) return 1;
+ else if (x == Py_False) return 0;
+ else return PyObject_IsTrue(x);
+}
+
+static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x) {
+ if (PyInt_CheckExact(x)) {
+ return PyInt_AS_LONG(x);
+ }
+ else if (PyLong_CheckExact(x)) {
+ return PyLong_AsLongLong(x);
+ }
+ else {
+ PY_LONG_LONG val;
+ PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
+ val = __pyx_PyInt_AsLongLong(tmp);
+ Py_DECREF(tmp);
+ return val;
+ }
+}
+
+static INLINE unsigned PY_LONG_LONG __pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
+ if (PyInt_CheckExact(x)) {
+ long val = PyInt_AS_LONG(x);
+ if (unlikely(val < 0)) {
+ PyErr_SetString(PyExc_TypeError, "Negative assignment to unsigned type.");
+ return (unsigned PY_LONG_LONG)-1;
+ }
+ return val;
+ }
+ else if (PyLong_CheckExact(x)) {
+ return PyLong_AsUnsignedLongLong(x);
+ }
+ else {
+ PY_LONG_LONG val;
+ PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
+ val = __pyx_PyInt_AsUnsignedLongLong(tmp);
+ Py_DECREF(tmp);
+ return val;
+ }
+}
+
+
+static INLINE unsigned char __pyx_PyInt_unsigned_char(PyObject* x) {
+ if (sizeof(unsigned char) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ unsigned char val = (unsigned char)long_val;
+ if (unlikely((val != long_val) || (long_val < 0))) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned char");
+ return (unsigned char)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE unsigned short __pyx_PyInt_unsigned_short(PyObject* x) {
+ if (sizeof(unsigned short) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ unsigned short val = (unsigned short)long_val;
+ if (unlikely((val != long_val) || (long_val < 0))) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned short");
+ return (unsigned short)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE char __pyx_PyInt_char(PyObject* x) {
+ if (sizeof(char) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ char val = (char)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to char");
+ return (char)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE short __pyx_PyInt_short(PyObject* x) {
+ if (sizeof(short) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ short val = (short)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to short");
+ return (short)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE int __pyx_PyInt_int(PyObject* x) {
+ if (sizeof(int) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ int val = (int)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to int");
+ return (int)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE long __pyx_PyInt_long(PyObject* x) {
+ if (sizeof(long) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ long val = (long)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to long");
+ return (long)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE signed char __pyx_PyInt_signed_char(PyObject* x) {
+ if (sizeof(signed char) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ signed char val = (signed char)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to signed char");
+ return (signed char)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE signed short __pyx_PyInt_signed_short(PyObject* x) {
+ if (sizeof(signed short) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ signed short val = (signed short)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to signed short");
+ return (signed short)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE signed int __pyx_PyInt_signed_int(PyObject* x) {
+ if (sizeof(signed int) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ signed int val = (signed int)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to signed int");
+ return (signed int)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE signed long __pyx_PyInt_signed_long(PyObject* x) {
+ if (sizeof(signed long) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ signed long val = (signed long)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to signed long");
+ return (signed long)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+
+static INLINE long double __pyx_PyInt_long_double(PyObject* x) {
+ if (sizeof(long double) < sizeof(long)) {
+ long long_val = __pyx_PyInt_AsLong(x);
+ long double val = (long double)long_val;
+ if (unlikely((val != long_val) )) {
+ PyErr_SetString(PyExc_OverflowError, "value too large to convert to long double");
+ return (long double)-1;
+ }
+ return val;
+ }
+ else {
+ return __pyx_PyInt_AsLong(x);
+ }
+}
+