libpurple/plugins/perl/common/typemap

Thu, 30 Oct 2008 22:40:49 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Thu, 30 Oct 2008 22:40:49 +0000
changeset 24569
5dbd0617a27d
parent 23987
3d41ccd1f8bf
child 34246
2ca1bb194693
child 34567
ea5103f66b0e
permissions
-rw-r--r--

Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
to detect when we're still using deprecated functions internally (and by
extension, when we've deprecated something we shouldn't have). In the
course of developing this changeset, I fixed a few such cases.

Given that the plan is to switch from PURPLE_HIDE_STRUCTS to
PURPLE_DISABLE_DEPRECATED as each struct is fully dealt with, this will
also ensure we have no regressions on the struct hiding work.

Deprecated functions are still available to the respective .c file, to
avoid missing prototype errors. Also, Perl and DBus undef the
*_DISABLE_DEPRECATED defines as appropriate so that deprecated functions
will still be exported to Perl plugins and via DBus. (Otherwise, we'd
be breaking backwards compatibility.)

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);

mercurial