TYPEMAP
guint					T_IV
gint					T_IV
const gint *				T_PTR
const guint *				T_PTR
const guint8 *				T_PTR
guint8					T_IV
guint8 *				T_PTR
time_t					T_IV
gboolean				T_BOOL
gpointer				T_PurpleObj
gconstpointer				T_PTR
const gchar *				T_PV
const char *				T_PV
const char **				T_PTR
char **					T_PTR
gchar					T_IV
gchar *					T_PV
gchar_own *				T_GCHAR_OWN
guchar					T_IV
guchar *				T_PV
guchar **				T_PTR
const guchar *				T_PV
char *					T_PV
int *					T_PTR
long *					T_PTR
size_t *				T_PTR
GCallback				T_PTR
va_list					T_PTR
GString *				T_PTR
GData *					T_PTR
GData **				T_PTR
const unsigned char *			T_PV
struct tm *				T_PTR
const struct tm *			T_PTR
xmlnode *				T_PTR
const xmlnode *				T_PTR
gssize					T_IV
const void *				T_PTR

Purple::Account				T_PurpleObj
Purple::Account::Option			T_PurpleObj
Purple::Account::UserSplit		T_PurpleObj

Purple::Buddy::Icon			T_PurpleObj
Purple::Buddy::Icon::Spec			T_PurpleObj
Purple::BuddyList				T_PurpleObj
Purple::BuddyList::Buddy			T_PurpleObj
Purple::BuddyList::Chat			T_PurpleObj
Purple::BuddyList::Contact		T_PurpleObj
Purple::BuddyList::Group			T_PurpleObj
Purple::BuddyList::Node			T_PurpleObj
Purple::BuddyList::NodeFlags		T_IV
Purple::BuddyList::NodeType		T_IV

Purple::Cipher				T_PurpleObj
Purple::CipherCaps			T_IV
Purple::Cipher::Ops			T_PurpleObj
Purple::Cipher::Context			T_PurpleObj
Purple::Cmd::Flag				T_IV
Purple::Cmd::Id				T_IV
Purple::Cmd::Priority			T_IV
Purple::Cmd::Ret				T_IV
Purple::Connection			T_PurpleObj
Purple::Conversation			T_PurpleObj
Purple::Conversation::Chat		T_PurpleObj
Purple::Conversation::ChatBuddy		T_PurpleObj
Purple::Conversation::IM			T_PurpleObj
Purple::Core				T_PurpleObj

Purple::Desktop::Item			T_PurpleObj
Purple::DesktopItemType			T_IV

Purple::Handle				T_PurpleObj

Purple::IconScaleRules			T_IV

Purple::Log				T_PurpleObj
Purple::LogType				T_IV
Purple::Log::CommonLoggerData		T_PurpleObj
Purple::Log::Logger			T_PurpleObj
Purple::Log::ReadFlags			T_PurpleObj
Purple::Log::Set				T_PurpleObj

Purple::Menu::Action			T_PurpleObj

Purple::NetworkListenData			T_PurpleObj
Purple::NetworkListenCallback		T_PTR

Purple::NotifyCloseCallback		T_PTR
Purple::NotifyMsgType			T_IV
Purple::NotifySearchButtonType		T_IV
Purple::NotifySearchResults		T_PurpleObj
Purple::NotifySearchColumn		T_PurpleObj
Purple::NotifySearchButton		T_PurpleObj
Purple::NotifyType			T_IV
Purple::NotifyUserInfo			T_PurpleObj
Purple::NotifyUserInfoEntry		T_PurpleObj

Purple::Plugin				T_PurpleObj
Purple::PluginType			T_IV
Purple::PluginUiInfo			T_PurpleObj
Purple::Plugin::Action			T_PurpleObj
Purple::Plugin::Info			T_PurpleObj
Purple::Plugin::Loader::Info		T_PurpleObj
Purple::Plugin::Protocol::Info		T_PurpleObj
Purple::PrefType				T_IV
Purple::PluginPref			T_PurpleObj
Purple::PluginPrefType			T_IV
Purple::PluginPref::Frame			T_PurpleObj
Purple::Pounce				T_PurpleObj
Purple::PounceEvent			T_IV
Purple::Presence				T_PurpleObj
Purple::PrivacyType			T_IV
Purple::ProtocolOptions			T_IV
Purple::ProxyInfo				T_PurpleObj
Purple::ProxyType				T_IV

Purple::RequestFieldType			T_IV
Purple::RequestType			T_IV
Purple::Request::Field			T_PurpleObj
Purple::Request::Fields			T_PurpleObj
Purple::Request::Field::Group		T_PurpleObj

Purple::Roomlist				T_PurpleObj
Purple::Roomlist::Room			T_PurpleObj
Purple::Roomlist::Field			T_PurpleObj
Purple::RoomlistFieldType			T_IV
Purple::RoomlistRoomType			T_IV

Purple::SavedStatus			T_PurpleObj
const Purple::SavedStatus			T_PurpleObj
Purple::SavedStatus::Sub			T_PurpleObj
const Purple::SavedStatus::Sub			T_PurpleObj
Purple::SoundEventID			T_IV

Purple::Input::Condition			T_PurpleObj
Purple::SslErrorType			T_IV
Purple::Ssl::Connection			T_PurpleObj
Purple::Ssl::Ops				T_PurpleObj

Purple::Presence				T_PurpleObj
Purple::PresenceContext			T_IV
Purple::Smiley				T_PurpleObj
Purple::Status				T_PurpleObj
Purple::StatusAttr			T_PurpleObj
Purple::StatusPrimitive			T_IV
Purple::StatusType			T_PurpleObj
const Purple::StatusType			T_PurpleObj

Purple::StoredImage			T_PurpleObj
Purple::String::Format::Type		T_IV
Purple::Stringref				T_PurpleObj
Purple::Util::FetchUrlData	T_PTR
Purple::Util::InfoFieldFormatCallback	T_PTR
Purple::Value				T_PurpleObj

Purple::Xfer				T_PurpleObj
Purple::XferType				T_IV
Purple::XferStatusType			T_IV

Purple::XMLNode				T_PurpleObj
XMLNode::Type				T_IV

/* enums */

/* certificate.h */
Purple::Certificate				T_PurpleObj
Purple::Certificate::Pool			T_PurpleObj
Purple::Certificate::Scheme			T_PurpleObj
Purple::Certificate::Verifier			T_PurpleObj
Purple::Certificate::VerificationRequest	T_PurpleObj
Purple::Certificate::VerificationStatus		T_IV

/* cipher.h */
Purple::Cipher::BatchMode	T_IV

/* blist.h */

/* debug.h */
Purple::DebugLevel			T_IV

/* conversation.h */
Purple::ConvChatBuddyFlags		T_IV
Purple::ConvUpdateType			T_IV
Purple::ConversationType		T_IV
Purple::MessageFlags			T_IV
Purple::TypingState			T_IV
Purple::UnseenState			T_IV

/* connection.h */
Purple::ConnectionFlags			T_IV
Purple::ConnectionState			T_IV

/* whiteboard.h */
Purple::Whiteboard			T_PurpleObj

INPUT

T_PurpleObj
	$var = purple_perl_ref_object($arg)

OUTPUT

T_PurpleObj
	$arg = purple_perl_bless_object($var, \"$type\");

T_GCHAR_OWN
	/* used when we can directly own the returned string. */
	/* we have to copy in the case when perl's malloc != gtk's malloc,
	 * so best copy all the time. */
	sv_setpv ((SV*)$arg, $var);
	SvUTF8_on ($arg);
	g_free ($var);

