view libpurple/dbus-maybe.h @ 31245:6b2b8cc8e7ae

OOH! I think I found the cause of a bug! I changed this function in revision eadc83c534fbbc673a6876ddb1e0bdac8428c07b to try to make it cleaner. When I did that, I added a break here when I should have added a continue. The result is that if we encounter a non-utf8 name for an item in your server side buddy list then we bail out earlier and don't add any server stored buddies to your local list. That's bad. I think this caused a lot of people to not see their complete buddy list. This probably affected ICQ users a lot more than AIM users, because ICQ users tend to use more 3rd party IM clients, and 3rd party IM clients sometimes put non-utf8 text in the name field of these items when they shouldn't. Hopefully fixes #13386
author Mark Doliner <mark@kingant.net>
date Mon, 21 Feb 2011 09:45:47 +0000
parents 1568dc7a14f8
children
line wrap: on
line source

/* This file contains macros that wrap calls to the purple dbus module.
   These macros call the appropriate functions if the build includes
   dbus support and do nothing otherwise.  See "dbus-server.h" for
   documentation.  */

#ifndef _PURPLE_DBUS_MAYBE_H_
#define _PURPLE_DBUS_MAYBE_H_

#ifdef HAVE_DBUS

#ifndef DBUS_API_SUBJECT_TO_CHANGE
#define DBUS_API_SUBJECT_TO_CHANGE
#endif

#include "dbus-server.h"

/* this provides a type check */
#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
    type *typed_ptr = ptr; \
    purple_dbus_register_pointer(typed_ptr, PURPLE_DBUS_TYPE(type));	\
}
#define PURPLE_DBUS_UNREGISTER_POINTER(ptr) purple_dbus_unregister_pointer(ptr)

#else  /* !HAVE_DBUS */

#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
    if (ptr) {} \
}

#define PURPLE_DBUS_UNREGISTER_POINTER(ptr)
#define DBUS_EXPORT

#endif	/* HAVE_DBUS */

#endif